Início Rápido: Envie um email para vários destinatários
Neste início rápido, você aprenderá a enviar emails para vários destinatários usando nossos SDKs de Email.
Começar a usar os Serviços de Comunicação do Azure usando a biblioteca de clientes de email .NET dos Serviços de Comunicação para enviar mensagens de email.
Dica
Inicie sua experiência de envio de email com os Serviços de Comunicação do Azure pulando diretamente para o código de exemplo Envio Básico de Email e Envio Avançado de Email no GitHub.
Noções básicas sobre o modelo de Objeto de E-mail
As classes e as interfaces a seguir lidam com alguns dos principais recursos da biblioteca de clientes de Email dos Serviços de Comunicação do Azure para C#.
Nome | Descrição |
---|---|
EmailAddress | Essa classe contém um endereço de email e uma opção para um nome de exibição. |
EmailAttachment | Essa classe cria um anexo de email aceitando uma ID exclusiva, uma cadeia de caracteres de tipo MIME de anexo de email, dados binários para conteúdo e uma ID de conteúdo opcional para defini-lo como um anexo embutido. |
EmailClient | Essa classe é necessária para toda a funcionalidade de email. Você cria uma instância com sua cadeia de conexão e a utiliza para enviar mensagens de email. |
EmailClientOptions | Essa classe pode ser adicionada à instanciação EmailClient para direcionar uma versão específica da API. |
EmailContent | Essa classe contém o assunto e o corpo da mensagem de email. Você precisa especificar pelo menos um conteúdo de texto não criptografado ou HTML |
EmailCustomHeader | Essa classe permite a adição de um par de nomes e valores a um cabeçalho personalizado. Email importância também pode ser especificada por meio desses cabeçalhos usando o nome de cabeçalho 'x-priority' ou 'x-msmail-priority' |
EmailMessage | Essa classe combina o remetente, o conteúdo e os destinatários. Cabeçalhos personalizados, anexos e endereços de email de resposta também podem ser adicionados. |
EmailRecipients | Essa classe contém listas de objetos EmailAddress para destinatários da mensagem de email, incluindo listas opcionais para destinatários CC e CCO. |
EmailSendOperation | Essa classe representa a operação de envio de e-mail assíncrono e é retornada da chamada à API de envio de e-mail. |
EmailSendResult | Essa classe contém os resultados da operação de envio de e-mail. Ele tem uma ID de operação, status da operação e objeto de erro (quando aplicável). |
EmailSendResult retorna o seguinte status na operação de e-mail executada.
Status | Descrição |
---|---|
NotStarted | Não estamos enviando esse status de nosso serviço no momento. |
Executando | A operação de envio de e-mail está em andamento e está sendo processada. |
Com sucesso | A operação de envio de e-mail foi concluída sem erro e o e-mail está fora para entrega. Qualquer status detalhado sobre a entrega de e-mail além desse estágio pode ser obtido por meio do Azure Monitor ou de Grade de Eventos do Azure. Saiba como assinar o e-mail de eventos |
Com falha | A operação de envio de e-mail não foi bem-sucedida e encontrou um erro. Este e-mail não foi enviado. O resultado contém um objeto de erro com mais detalhes sobre o motivo da falha. |
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- A versão mais recente da biblioteca de clientes do .NET Core para o seu sistema operacional.
- Um recurso dos Serviços de Comunicação por Email do Azure criado e pronto com um domínio provisionado Introdução à criação do recurso de comunicação por email
- Um recurso ativo dos Serviços de Comunicação conectado com o Domínio de Email e uma Cadeia de Conexão. Introdução Conectando o Recurso de email com um Recurso de Comunicação
A realização deste início rápido gera um pequeno custo de alguns centavos de dólar ou menos em sua conta do Azure.
Observação
Também podemos enviar um e-mail de nosso próprio domínio verificado. Como adicionar domínios verificados ao Serviço de Comunicação por E-mail.
Verificação de pré-requisitos
- Em um terminal ou janela de comando, execute o comando
dotnet
para verificar se a biblioteca de clientes do .NET está instalada. - Para exibir os subdomínios associados ao seu recurso dos Serviços de Comunicação por Email, entre no portal do Azure, localize o recurso em questão e abra a guia Provisionar domínios no painel de navegação esquerdo.
Criar um aplicativo em C#
Em uma janela de console (como cmd, PowerShell ou Bash), use o comando dotnet new
para criar um novo aplicativo do console com o nome EmailQuickstart
. Esse comando cria um projeto simples C# "Olá, Mundo" com um arquivo de origem único: Program.cs.
dotnet new console -o EmailQuickstart
Altere o seu diretório para a pasta de aplicativo recém-criada e use o comando dotnet build
para compilar o seu aplicativo.
cd EmailQuickstart
dotnet build
Instalar o pacote
Ainda no diretório do aplicativo, instale o pacote da biblioteca de clientes de Email dos Serviços de Comunicação do Azure para .NET usando o comando dotnet add package
.
dotnet add package Azure.Communication.Email
Criando o cliente de e-mail com autenticação
Abra Program.cs e substitua o código existente pelo seguinte para adicionar diretivas using
para incluir o namespace Azure.Communication.Email
e um ponto de partida para execução do programa.
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Azure;
using Azure.Communication.Email;
namespace SendEmail
{
internal class Program
{
static async Task Main(string[] args)
{
}
}
}
Existem algumas opções diferentes disponíveis para autenticar um cliente de email:
Abra Program.cs em um editor de texto e substitua o corpo do método Main
pelo código para inicializar um EmailClient
com a cadeia de conexão. O código abaixo recupera a cadeia de conexão do recurso em uma variável de ambiente chamada COMMUNICATION_SERVICES_CONNECTION_STRING
. Saiba como gerenciar a cadeia de conexão do seu recurso.
// This code demonstrates how to fetch your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
EmailClient emailClient = new EmailClient(connectionString);
Enviar uma mensagem de email para vários destinatários
Podemos definir vários destinatários adicionando EmailAddresses adicionais ao objeto EmailRecipients. Esses endereços podem ser adicionados como destinatários To
, CC
ou BCC
. Opcionalmente, também podemos adicionar um endereço de email ReplyTo
para receber respostas.
// Create the email content
var emailContent = new EmailContent("Welcome to Azure Communication Service Email APIs.")
{
PlainText = "This email message is sent from Azure Communication Service Email.",
Html = "<html><body><h1>Quick send email test</h1><br/><h4>This email message is sent from Azure Communication Service Email.</h4><p>This mail was sent using .NET SDK!!</p></body></html>"
};
// Create the To list
var toRecipients = new List<EmailAddress>
{
new EmailAddress("<emailalias1@emaildomain.com>"),
new EmailAddress("<emailalias2@emaildomain.com>"),
};
// Create the CC list
var ccRecipients = new List<EmailAddress>
{
new EmailAddress("<ccemailalias@emaildomain.com>"),
};
// Create the BCC list
var bccRecipients = new List<EmailAddress>
{
new EmailAddress("<bccemailalias@emaildomain.com>"),
};
EmailRecipients emailRecipients = new EmailRecipients(toRecipients, ccRecipients, bccRecipients);
// Create the EmailMessage
var emailMessage = new EmailMessage(
senderAddress: "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net" // The email address of the domain registered with the Communication Services resource
emailRecipients,
emailContent);
// Add optional ReplyTo address which is where any replies to the email will go to.
emailMessage.ReplyTo.Add(new EmailAddress("<replytoemailalias@emaildomain.com>"));
try
{
EmailSendOperation emailSendOperation = emailClient.Send(WaitUntil.Completed, emailMessage);
Console.WriteLine($"Email Sent. Status = {emailSendOperation.Value.Status}");
/// Get the OperationId so that it can be used for tracking the message for troubleshooting
string operationId = emailSendOperation.Id;
Console.WriteLine($"Email operation id = {operationId}");
}
catch (RequestFailedException ex)
{
/// OperationID is contained in the exception message and can be used for troubleshooting purposes
Console.WriteLine($"Email send operation failed with error code: {ex.ErrorCode}, message: {ex.Message}");
}
Execute o aplicativo do seu diretório de aplicativo com o comando dotnet run
.
dotnet run
Código de exemplo
Baixe o aplicativo de exemplo que demonstra isso no GitHub
Comece a usar os Serviços de Comunicação do Azure usando a biblioteca de clientes de email do JS dos Serviços de Comunicação para enviar mensagens por email.
Dica
Inicie sua experiência de envio de email com os Serviços de Comunicação do Azure pulando diretamente para o código de exemplo Envio Básico de Email e Envio Avançado de Email no GitHub.
Noções básicas sobre o modelo de objeto de e-mail
As classes e as interfaces a seguir lidam com alguns dos principais recursos da biblioteca de clientes de Email dos Serviços de Comunicação do Azure para JavaScript.
Nome | Descrição |
---|---|
EmailAddress | Essa classe contém um endereço de email e uma opção para um nome de exibição. |
EmailAttachment | Essa classe cria um anexo de email aceitando uma ID exclusiva, uma cadeia de caracteres de tipo MIME de anexo de email, dados binários para conteúdo e uma ID de conteúdo opcional para defini-lo como um anexo embutido. |
EmailClient | Essa classe é necessária para toda a funcionalidade de email. Você cria uma instância com sua cadeia de conexão e a utiliza para enviar mensagens de email. |
EmailClientOptions | Essa classe pode ser adicionada à instanciação EmailClient para direcionar uma versão específica da API. |
EmailContent | Essa classe contém o assunto e o corpo da mensagem de email. Você precisa especificar pelo menos um dos conteúdos de Texto não criptografado ou Html. |
EmailCustomHeader | Essa classe permite a adição de um par de nomes e valores a um cabeçalho personalizado. E-mail importância também pode ser especificada por meio desses cabeçalhos usando o nome de cabeçalho 'x-priority' ou 'x-msmail-priority'. |
EmailMessage | Essa classe combina o remetente, o conteúdo e os destinatários. Cabeçalhos personalizados, anexos e endereços de email de resposta também podem ser adicionados. |
EmailRecipients | Essa classe contém listas de objetos EmailAddress para destinatários da mensagem de email, incluindo listas opcionais para destinatários CC e CCO. |
EmailSendResult | Essa classe contém os resultados da operação de envio de e-mail. Ele tem uma ID de operação, status da operação e objeto de erro (quando aplicável). |
EmailSendStatus | Essa classe representa o conjunto de status de uma operação de envio de e-mail. |
EmailSendResult retorna o seguinte status na operação de e-mail executada.
Nome do Status | Descrição |
---|---|
Isstarted | Retornará verdadeiro se a operação de envio de e-mail estiver em andamento e estiver sendo processada. |
IsCompleted | Retorna true se a operação de envio de e-mail tiver sido concluída sem erro e o e-mail estiver fora para entrega. Qualquer status detalhado sobre a entrega de e-mail além desse estágio pode ser obtido por meio do Azure Monitor ou de Grade de Eventos do Azure. Saiba como assinar o e-mail de eventos |
result | Propriedade que existe se a operação de envio de e-mail for concluída. |
erro | Propriedade que existe se a operação de envio de e-mail não foi bem-sucedida e encontrou um erro. Este e-mail não foi enviado. O resultado contém um objeto de erro com mais detalhes sobre o motivo da falha. |
Pré-requisitos
- Node.js (~14).
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso dos Serviços de Comunicação por Email do Azure criado e pronto com um domínio provisionado. Introdução à criação do Recurso de Comunicação por Email.
- Um recurso ativo dos Serviços de Comunicação do Azure conectado a um domínio de email e á respectiva cadeia de conexão. Introdução à conexão de um recurso de comunicação por email com um recurso de comunicação do Azure.
A realização deste início rápido gera um pequeno custo de alguns centavos de dólar ou menos em sua conta do Azure.
Observação
Também podemos enviar um e-mail de nosso próprio domínio verificado. Como adicionar domínios verificados ao Serviço de Comunicação por E-mail.
Verificação de pré-requisitos
- Em uma janela de terminal ou de comando, execute
node --version
para verificar se o Node.js está instalado. - Para exibir os domínios verificados com seu recurso dos Serviços de Comunicação por Email, entre no portal do Azure, localize o recurso em questão e abra a guia Provisionar domínios no painel de navegação esquerdo.
Configurar o ambiente do aplicativo
Criar um aplicativo Node.js
Primeiro, abra a janela de comando ou do terminal para criar um diretório para seu aplicativo e navegue até ele.
mkdir email-quickstart && cd email-quickstart
Execute npm init -y
para criar um arquivo package.json com as configurações padrão.
npm init -y
Use um editor de texto para criar um arquivo chamado send-email.js no diretório raiz do projeto. Altere a propriedade "main" em package.json para "send-email.js". A seção a seguir demonstra como adicionar o código-fonte para este início rápido ao arquivo recém-criado.
Instalar o pacote
Use o comando npm install
para instalar a biblioteca de clientes de Email dos Serviços de Comunicação do Azure para JavaScript.
npm install @azure/communication-email --save
A opção --save
lista a biblioteca como uma dependência no arquivo package.json.
Criando o cliente de e-mail com autenticação
Existem algumas opções diferentes disponíveis para autenticar um cliente de email:
Importe o EmailClient da biblioteca de clientes e crie uma instância dele com sua cadeia de conexão.
O código abaixo recupera a cadeia de conexão do recurso de uma variável de ambiente chamada COMMUNICATION_SERVICES_CONNECTION_STRING
usando o pacote dotenv. Use o comando npm install
para instalar o pacote dotenv. Saiba como gerenciar a cadeia de conexão do seu recurso.
npm install dotenv
Adicione o seguinte código a send-email.js:
const { EmailClient } = require("@azure/communication-email");
require("dotenv").config();
// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
const emailClient = new EmailClient(connectionString);
Para simplificar, este guia de início rápido usa cadeias de conexão, mas em ambientes de produção, recomenda-se o uso de entidades de serviço.
Enviar uma mensagem de email para vários destinatários
Para enviar um e-mail para vários destinatários, adicione um objeto para cada tipo de destinatário e um outro para cada destinatário. Esses endereços podem ser adicionados como destinatários To
, CC
ou BCC
. Opcionalmente, adicione um endereço de email à propriedade replyTo
se você quiser receber respostas.
const message = {
senderAddress: "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
content: {
subject: "Welcome to Azure Communication Service Email.",
plainText: "<This email message is sent from Azure Communication Service Email using JS SDK.>"
},
recipients: {
to: [
{
address: "customer1@domain.com",
displayName: "Customer Name 1",
},
{
address: "customer2@domain.com",
displayName: "Customer Name 2",
}
],
cc: [
{
address: "ccCustomer1@domain.com",
displayName: " CC Customer 1",
},
{
address: "ccCustomer2@domain.com",
displayName: "CC Customer 2",
}
],
bcc: [
{
address: "bccCustomer1@domain.com",
displayName: " BCC Customer 1",
},
{
address: "bccCustomer2@domain.com",
displayName: "BCC Customer 2",
}
]
},
replyTo: [
{
address: "replyToCustomer1@domain.com",
displayName: "ReplyTo Customer 1",
}
]
};
const poller = await emailClient.beginSend(message);
const response = await poller.pollUntilDone();
Código de exemplo
Baixe o aplicativo de exemplo que demonstra isso no GitHub
Comece a usar os Serviços de Comunicação do Azure usando o SDK de Email dos Serviços de Comunicação para Java a fim de enviar mensagens de email.
Dica
Inicie sua experiência de envio de email com os Serviços de Comunicação do Azure pulando diretamente para o código de exemplo Envio Básico de Email e Envio Avançado de Email no GitHub.
Noções básicas sobre o modelo de objeto de e-mail
As classes e as interfaces a seguir lidam com alguns dos principais recursos do SDK de Email dos Serviços de Comunicação do Azure para Python.
Nome | Descrição |
---|---|
EmailAddress | Essa classe contém um endereço de email e uma opção para um nome de exibição. |
EmailAttachment | Essa interface cria um anexo de email aceitando uma ID exclusiva, uma cadeia de caracteres de tipo MIME de anexo de email, uma cadeia de caracteres de bytes de conteúdo e uma ID de conteúdo opcional para defini-la como um anexo embutido. |
EmailClient | Essa classe é necessária para toda a funcionalidade de email. Você cria uma instância com sua cadeia de conexão e a utiliza para enviar mensagens de email. |
EmailMessage | Essa classe combina o remetente, o conteúdo e os destinatários. Cabeçalhos personalizados, anexos e endereços de email de resposta também podem ser adicionados. |
EmailSendResult | Essa classe contém os resultados da operação de envio de e-mail. Ele tem uma ID de operação, status da operação e objeto de erro (quando aplicável). |
EmailSendStatus | Essa classe representa o conjunto de status de uma operação de envio de e-mail. |
EmailSendResult retorna o seguinte status na operação de e-mail executada.
Nome do Status | Descrição |
---|---|
NOT_STARTED | Não estamos enviando esse status de nosso serviço no momento. |
IN_PROGRESS | A operação de envio de e-mail está em andamento e está sendo processada. |
SUCCESSFULLY_COMPLETED | A operação de envio de e-mail foi concluída sem erro e o e-mail está fora para entrega. Qualquer status detalhado sobre a entrega de e-mail além desse estágio pode ser obtido por meio do Azure Monitor ou de Grade de Eventos do Azure. Saiba como assinar o e-mail de eventos |
FAILED | A operação de envio de e-mail não foi bem-sucedida e encontrou um erro. Este e-mail não foi enviado. O resultado contém um objeto de erro com mais detalhes sobre o motivo da falha. |
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- JDK (Java Development Kit) versão 8 ou superior.
- Apache Maven.
- Um recurso e uma cadeia de conexão dos Serviços de Comunicação implantados. Para mais detalhes, acesse Criar um recurso dos Serviços de Comunicação do Azure.
- Crie um recurso dos Serviços de Comunicação do Azure Email para começar a enviar e-mails.
- Uma identidade gerenciada de configuração para um ambiente de desenvolvimento, acesse Autorizar o acesso com identidade gerenciada.
A realização deste início rápido gera um pequeno custo de alguns centavos de dólar ou menos em sua conta do Azure.
Observação
Também podemos enviar um e-mail de nosso próprio domínio verificado Adicionar domínios verificados personalizados para E-mail Serviço de Comunicação.
Verificação de pré-requisitos
- Em um terminal ou janela de comando, execute
mvn -v
para verificar se o Maven está instalado. - Para ver os domínios verificados com o recurso dos Serviços de Comunicação por Email, entre no portal do Azure. Localize o recurso dos Serviços de Comunicação por Email e abra a guia Provisionar domínios no painel de navegação à esquerda.
Configurar o ambiente do aplicativo
Para configurar um ambiente para o envio de emails, siga as etapas das seções a seguir.
Criar um aplicativo Java
Abra o terminal ou a janela de comando e navegue até o diretório no qual você deseja criar o seu aplicativo Java. Execute o comando abaixo para gerar o projeto Java a partir do modelo maven-archetype-quickstart.
mvn archetype:generate -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.4" -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart"
A meta generate
cria um diretório com o mesmo nome do valor artifactId
. Nesse diretório, o diretório src/main/java contém o código-fonte do projeto, o diretório src/test/java contém a fonte de teste e o arquivo pom.xml é o POM (Modelo de Objeto do Projeto) do projeto.
Instalar o pacote
Abra o arquivo pom.xml no seu editor de texto. Adicione o seguinte elemento de dependência ao grupo de dependências.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-email</artifactId>
<version>1.0.0-beta.2</version>
</dependency>
Configurar o framework de aplicativos
Abra /src/main/java/com/communication/quickstart/App.java em um editor de texto, adicione diretivas de importação e remova a instrução System.out.println("Hello world!");
:
package com.communication.quickstart;
import com.azure.communication.email.models.*;
import com.azure.communication.email.*;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;
public class App
{
public static void main( String[] args )
{
// Quickstart code goes here.
}
}
Criando o cliente de e-mail com autenticação
Existem algumas opções diferentes disponíveis para autenticar um cliente de email:
Para autenticar um cliente, crie uma instância de EmailClient
com sua cadeia de conexão. Saiba como gerenciar a cadeia de conexão do seu recurso. Também é possível criar uma instância do cliente com qualquer cliente HTTP personalizado que implemente a interface com.azure.core.http.HttpClient
.
Para criar uma instância de um cliente, adicione o seguinte código ao método main
:
// You can get your connection string from your resource in the Azure portal.
String connectionString = "endpoint=https://<resource-name>.communication.azure.com/;accesskey=<access-key>";
EmailClient emailClient = new EmailClientBuilder()
.connectionString(connectionString)
.buildClient();
Para simplificar, este guia de início rápido usa cadeias de conexão, mas em ambientes de produção, recomenda-se o uso de entidades de serviço.
Enviar uma mensagem de email para vários destinatários
Para enviar uma mensagem de e-mail a vários destinatários, adicione os novos endereços no setter EmailMessage
apropriado. Esses endereços podem ser adicionados como destinatários To
, CC
ou BCC
. Opcionalmente, adicione um endereço de email à propriedade replyTo
se você quiser receber respostas.
EmailMessage message = new EmailMessage()
.setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
.setSubject("Welcome to Azure Communication Services Email")
.setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.")
.setToRecipients("<recipient1@emaildomain.com>", "<recipient2@emaildomain.com>")
.setCcRecipients("<recipient3@emaildomain.com>")
.setBccRecipients("<recipient4@emaildomain.com>")
.setReplyTo("<replytoemail@emaildomain.com>");
SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null);
PollResponse<EmailSendResult> response = poller.waitForCompletion();
System.out.println("Operation Id: " + response.getValue().getId());
Para personalizar ainda mais os destinatários da mensagem de e-mail, você pode instanciar os EmailAddress
objetos e passá-los para os setters apropriadosEmailMessage
.
EmailAddress toAddress1 = new EmailAddress("<recipient1@emaildomain.com>")
.setDisplayName("Recipient");
EmailAddress toAddress2 = new EmailAddress("<recipient2@emaildomain.com>")
.setDisplayName("Recipient 2");
EmailMessage message = new EmailMessage()
.setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
.setSubject("Welcome to Azure Communication Services Email")
.setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.")
.setToRecipients(toAddress1, toAddress2)
.setCcRecipients(toAddress1, toAddress2)
.setBccRecipients(toAddress1, toAddress2)
SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null);
PollResponse<EmailSendResult> response = poller.waitForCompletion();
System.out.println("Operation Id: " + response.getValue().getId());
Código de exemplo
Baixe o aplicativo de exemplo que demonstra isso no GitHub
Comece a usar os Serviços de Comunicação do Azure usando o SDK de Email dos Serviços de Comunicação para Python a fim de enviar mensagens de email.
Dica
Inicie sua experiência de envio de email com os Serviços de Comunicação do Azure pulando diretamente para o código de exemplo Envio Básico de Email e Envio Avançado de Email no GitHub.
Noções básicas sobre o modelo de objeto de e-mail
O objeto de resposta e modelo de mensagem JSON a seguir demonstra alguns dos principais recursos do SDK de Email dos Serviços de Comunicação do Azure para Python.
message = {
"content": {
"subject": "str", # Subject of the email message. Required.
"html": "str", # Optional. Html version of the email message.
"plainText": "str" # Optional. Plain text version of the email
message.
},
"recipients": {
"to": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
],
"bcc": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
],
"cc": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
]
},
"senderAddress": "str", # Sender email address from a verified domain. Required.
"attachments": [
{
"name": "str" # Name of the attachment. Required.
"contentType": "str", # MIME type of the content being attached. Required.
"contentInBase64": "str", # Base64 encoded contents of the attachment. Required.
"contentId": "str" # Unique identifier (CID) to reference an inline attachment. Optional
}
],
"userEngagementTrackingDisabled": bool, # Optional. Indicates whether user engagement tracking should be disabled for this request if the resource-level user engagement tracking setting was already enabled in the control plane.
"headers": {
"str": "str" # Optional. Custom email headers to be passed.
},
"replyTo": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
]
}
response = {
"id": "str", # The unique id of the operation. Uses a UUID. Required.
"status": "str", # Status of operation. Required. Known values are:
"NotStarted", "Running", "Succeeded", and "Failed".
"error": {
"additionalInfo": [
{
"info": {}, # Optional. The additional info.
"type": "str" # Optional. The additional info type.
}
],
"code": "str", # Optional. The error code.
"details": [
...
],
"message": "str", # Optional. The error message.
"target": "str" # Optional. The error target.
}
}
Os response.status
valores são explicados ainda mais na tabela a seguir.
Nome do Status | Descrição |
---|---|
InProgress | A operação de envio de e-mail está em andamento e está sendo processada. |
Com sucesso | A operação de envio de e-mail foi concluída sem erro e o e-mail está fora para entrega. Qualquer status detalhado sobre a entrega de e-mail além desse estágio pode ser obtido por meio do Azure Monitor ou de Grade de Eventos do Azure. Saiba como assinar o e-mail de eventos |
Com falha | A operação de envio de e-mail não foi bem-sucedida e encontrou um erro. Este e-mail não foi enviado. O resultado contém um objeto de erro com mais detalhes sobre o motivo da falha. |
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Python 3.7+.
- Um recurso dos Serviços de Comunicação por Email do Azure criado e pronto com um domínio provisionado. Introdução à criação do Recurso de Comunicação por Email.
- Um recurso ativo dos Serviços de Comunicação do Azure conectado a um domínio de email e á respectiva cadeia de conexão. Introdução à conexão de um recurso de comunicação por email com um recurso de comunicação do Azure.
A realização deste início rápido gera um pequeno custo de alguns centavos de dólar ou menos em sua conta do Azure.
Observação
Também podemos enviar um e-mail de nosso próprio domínio verificado. Como adicionar domínios verificados ao Serviço de Comunicação por E-mail.
Verificação de pré-requisitos
- Em um terminal ou em uma janela de comando, execute o comando
python --version
para verificar se o Python está instalado. - Para ver os domínios verificados com o recurso dos Serviços de Comunicação por Email, entre no portal do Azure. Localize o recurso dos Serviços de Comunicação por Email e abra a guia Provisionar domínios no painel de navegação à esquerda.
Configurar o ambiente do aplicativo
Para configurar um ambiente para o envio de emails, siga as etapas das seções a seguir.
Criar um novo aplicativo Python
Abra o terminal ou a janela Comando. Em seguida, use o comando a seguir para criar um ambiente virtual e ativá-lo. Esse comando cria um novo diretório para seu aplicativo.
python -m venv email-quickstart
Navegue até o diretório raiz do ambiente virtual e ative-o usando os comandos a seguir.
cd email-quickstart .\Scripts\activate
Use um editor de texto para criar um arquivo chamado send-email.py no diretório raiz do projeto e adicione a estrutura do programa, incluindo o tratamento de exceção básico.
import os from azure.communication.email import EmailClient try: # Quickstart code goes here. except Exception as ex: print('Exception:') print(ex)
Nas seções a seguir, você adicionará todo o código-fonte deste guia de início rápido ao arquivo send-email.py que acabou de criar.
Instalar o pacote
Ainda no diretório do aplicativo, instale o pacote do SDK de Email dos Serviços de Comunicação do Azure para Python usando o comando a seguir.
pip install azure-communication-email
Criando o cliente de e-mail com autenticação
Existem algumas opções diferentes disponíveis para autenticar um cliente de email:
Crie uma instância de um EmailClient com a cadeia de conexão. Saiba como gerenciar a cadeia de conexão do seu recurso.
# Create the EmailClient object that you use to send Email messages.
email_client = EmailClient.from_connection_string(<connection_string>)
Para simplificar, este guia de início rápido usa cadeias de conexão, mas em ambientes de produção, recomenda-se o uso de entidades de serviço.
Enviar uma mensagem de email para vários destinatários
Podemos definir vários destinatários adicionando mais endereços de email ao objeto recipients
. Esses endereços podem ser adicionados como to
, cc
ou bcc
listas de destinatários adequadamente. Opcionalmente, também podemos adicionar um endereço de email ReplyTo
para receber respostas.
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
"html": "html><h1>This is the body</h1></html>"
},
"recipients": {
"to": [
{"address": "<recipient1@emaildomain.com>", "displayName": "Customer Name"},
{"address": "<recipient2@emaildomain.com>", "displayName": "Customer Name 2"}
],
"cc": [
{"address": "<recipient1@emaildomain.com>", "displayName": "Customer Name"},
{"address": "<recipient2@emaildomain.com>", "displayName": "Customer Name 2"}
],
"bcc": [
{"address": "<recipient1@emaildomain.com>", "displayName": "Customer Name"},
{"address": "<recipient2@emaildomain.com>", "displayName": "Customer Name 2"}
]
},
"replyTo": [
{"address": "<replytoemail@emaildomain.com>", "displayName": "Display Name"}
],
"senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
}
poller = email_client.begin_send(message)
result = poller.result()
Código de exemplo
Baixe o aplicativo de exemplo que demonstra isso no GitHub
Solução de problemas
Entrega de Emails
Para solucionar problemas relacionados à entrega de emails, você pode obter o status da entrega do email para capturar os detalhes da entrega.
Importante
O resultado de êxito retornado pela sondagem para o status da operação de envio só valida o fato de que o email foi enviado com êxito para entrega. Para obter informações adicionais sobre o status da entrega no destinatário final, você precisará consultar como lidar com eventos de email.
Limitação de Emails
Se você vir que seu aplicativo está travando, pode ser devido à limitação de envio de emails. Você pode lidar com isso através do registro em log ou implementando uma política personalizada.
Observação
Essa configuração de área restrita é para ajudar os desenvolvedores a começar a criar o aplicativo. Você pode solicitar gradualmente para aumentar o volume de envio quando o aplicativo estiver pronto para entrar em operação. Envie uma solicitação de suporte para aumentar o limite de envio desejado se você precisar enviar um volume de mensagens que exceda os limites de taxa.
Limpar recursos do Serviço de Comunicação do Azure
Se quiser limpar e remover uma assinatura dos Serviços de Comunicação, exclua o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele. Saiba mais sobre como limpar recursos.
Próximas etapas
Neste início rápido, você aprendeu a pesquisar manualmente o status ao enviar emails usando os Serviços de Comunicação do Azure.
Você também pode querer:
- Saiba como sondar manualmente status de email
- Saiba mais sobre o envio de emails com anexos
- Familiarizar-se com a biblioteca de clientes do email