Partilhar via


Guia de início rápido: enviar e-mail com anexos

Neste início rápido, você aprenderá sobre como enviar e-mails com anexos usando nossos SDKs de e-mail.

Comece a usar os Serviços de Comunicação do Azure usando a biblioteca de cliente de Email .NET dos Serviços de Comunicação para enviar mensagens de email.

Gorjeta

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 de Email Básico e Envio de Email Avançado no GitHub.

Noções básicas sobre o modelo de objeto de e-mail

As classes e interfaces a seguir lidam com alguns dos principais recursos da biblioteca do Cliente de Email dos Serviços de Comunicação do Azure para C#.

Nome Descrição
EmailAddress Esta classe contém um endereço de e-mail e uma opção para um nome de exibição.
EmailAttachment Essa classe cria um anexo de email aceitando uma ID exclusiva, cadeia de caracteres do tipo MIME do anexo de email, dados binários para conteúdo e uma ID de conteúdo opcional para defini-lo como um anexo embutido.
EmailClient Esta classe é necessária para todas as funcionalidades de e-mail. Você o instancia com sua cadeia de conexão e o usa para enviar mensagens de email.
EmailClientOptions Essa classe pode ser adicionada à instanciação EmailClient para direcionar uma versão específica da API.
EmailContent Esta classe contém o assunto e o corpo da mensagem de email. Você precisa especificar pelo menos um dos conteúdos PlainText ou Html
EmailCustomHeader Essa classe permite a adição de um par de nome e valor para um cabeçalho personalizado. A importância do e-mail também pode ser especificada através desses cabeçalhos usando o nome do cabeçalho 'x-priority' ou 'x-msmail-priority'
Mensagem de e-mail Essa classe combina o remetente, o conteúdo e os destinatários. Opcionalmente, também podem ser adicionados cabeçalhos, anexos e endereços de e-mail de resposta personalizados.
Destinatários de e-mail Esta classe contém listas de objetos EmailAddress para destinatários da mensagem de email, incluindo listas opcionais para destinatários CC ou BCC.
EmailSendOperation Essa classe representa a operação assíncrona de envio de email e é retornada da chamada api de envio de email.
EmailSendResult Esta classe contém os resultados da operação de envio de e-mail. Ele tem um ID de operação, status da operação e objeto de erro (quando aplicável).

EmailSendResult retorna o seguinte status na operação de email executada.

Status Description
NotStarted Não estamos enviando esse status do nosso serviço no momento.
Em Execução A operação de envio de e-mail está atualmente em andamento e sendo processada.
Com êxito 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 email além desse estágio pode ser obtido por meio do Azure Monitor ou da Grade de Eventos do Azure. Saiba como subscrever eventos por e-mail
Com falhas A operação de envio de e-mail não foi bem-sucedida e encontrou um erro. O e-mail não foi enviado. O resultado contém um objeto de erro com mais detalhes sobre o motivo da falha.

Pré-requisitos

A conclusão deste início rápido implica um pequeno custo de alguns cêntimos de USD ou menos na sua conta do Azure.

Nota

Também podemos enviar um e-mail a partir do nosso próprio domínio verificado. Adicione domínios verificados personalizados ao Serviço de Comunicação por E-mail.

Verificação de pré-requisitos

  • Em um terminal ou janela de comando, execute o dotnet comando para verificar se a biblioteca de cliente .NET está instalada.
  • Para exibir os subdomínios associados ao seu recurso Serviços de Comunicação por Email, entre no portal do Azure, localize seu recurso Serviços de Comunicação por Email e abra a guia Provisionar domínios no painel de navegação esquerdo.

Criar um novo aplicativo C#

Em uma janela de console (como cmd, PowerShell ou Bash), use o dotnet new comando para criar um novo aplicativo de console com o nome EmailQuickstart. Este comando cria um projeto C# "Hello World" simples com um único arquivo de origem: Program.cs.

dotnet new console -o EmailQuickstart

Altere seu diretório para a pasta do aplicativo recém-criada e use o dotnet build comando para compilar seu aplicativo.

cd EmailQuickstart
dotnet build

Instalar o pacote

Enquanto ainda estiver no diretório do aplicativo, instale a biblioteca de cliente de Email dos Serviços de Comunicação do Azure para o pacote .NET usando o dotnet add package comando.

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 using diretivas para incluir o Azure.Communication.Email namespace e um ponto de partida para execução do seu 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 e-mail:

Abra Program.cs em um editor de texto e substitua o Main corpo do método por código para inicializar um EmailClient com sua cadeia de conexão. O código a seguir recupera a cadeia de conexão para o recurso de uma variável de ambiente chamada COMMUNICATION_SERVICES_CONNECTION_STRING. Saiba como gerir a cadeia de ligaçã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 e-mail com anexos

Podemos adicionar um anexo definindo um objeto EmailAttachment e adicionando-o ao nosso objeto EmailMessage. Leia o arquivo anexo e codifice-o usando Base64.


// 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 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
    recipientAddress: "emailalias@contoso.com"
    content: emailContent);

// Create the EmailAttachment
var filePath = "C:\Users\Documents\attachment.pdf";
byte[] bytes = File.ReadAllBytes(filePath);
var contentBinaryData = new BinaryData(bytes);
var emailAttachment = new EmailAttachment("attachment.pdf", MediaTypeNames.Application.Pdf, contentBinaryData);

emailMessage.Attachments.Add(emailAttachment);

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 a partir do diretório do aplicativo com o dotnet run comando.

dotnet run

Tipos MIME permitidos

Para obter mais informações sobre tipos MIME aceitáveis para anexos de e-mail, consulte a documentação de tipos MIME permitidos.

Código de exemplo

Você pode baixar o aplicativo de exemplo demonstrando essa ação do GitHub

Comece a usar os Serviços de Comunicação do Azure usando a biblioteca de cliente de Email JS dos Serviços de Comunicação para enviar mensagens de email.

Gorjeta

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 de Email Básico e Envio de Email Avançado no GitHub.

Noções básicas sobre o modelo de objeto de email

As classes e interfaces a seguir lidam com alguns dos principais recursos da biblioteca do Cliente de Email dos Serviços de Comunicação do Azure para JavaScript.

Nome Descrição
EmailAddress Esta classe contém um endereço de e-mail e uma opção para um nome de exibição.
EmailAttachment Essa classe cria um anexo de email aceitando uma ID exclusiva, cadeia de caracteres do tipo MIME do anexo de email, dados binários para conteúdo e uma ID de conteúdo opcional para defini-lo como um anexo embutido.
EmailClient Esta classe é necessária para todas as funcionalidades de e-mail. Você o instancia com sua cadeia de conexão e o usa para enviar mensagens de email.
EmailClientOptions Essa classe pode ser adicionada à instanciação EmailClient para direcionar uma versão específica da API.
EmailContent Esta classe contém o assunto e o corpo da mensagem de email. Você precisa especificar pelo menos um dos conteúdos PlainText ou Html.
EmailCustomHeader Essa classe permite a adição de um par de nome e valor para um cabeçalho personalizado. A importância do e-mail também pode ser especificada através desses cabeçalhos usando o nome do cabeçalho 'x-priority' ou 'x-msmail-priority'.
Mensagem de e-mail Essa classe combina o remetente, o conteúdo e os destinatários. Opcionalmente, também podem ser adicionados cabeçalhos, anexos e endereços de e-mail de resposta personalizados.
Destinatários de e-mail Esta classe contém listas de objetos EmailAddress para destinatários da mensagem de email, incluindo listas opcionais para destinatários CC ou BCC.
EmailSendResult Esta classe contém os resultados da operação de envio de e-mail. Ele tem um 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 email.

EmailSendResult retorna o seguinte status na operação de email executada.

Nome do status Description
isIniciado Retorna true se a operação de envio de e-mail estiver atualmente em andamento e sendo processada.
isConcluído 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 email além desse estágio pode ser obtido por meio do Azure Monitor ou da Grade de Eventos do Azure. Saiba como subscrever eventos por e-mail
result Propriedade que existe se a operação de envio de e-mail tiver sido concluída.
error Propriedade que existe se a operação de envio de e-mail não foi bem-sucedida e encontrou um erro. O e-mail não foi enviado. O resultado contém um objeto de erro com mais detalhes sobre o motivo da falha.

Pré-requisitos

A conclusão deste início rápido implica um pequeno custo de alguns cêntimos de USD ou menos na sua conta do Azure.

Nota

Também podemos enviar um e-mail a partir do nosso próprio domínio verificado. Adicione domínios verificados personalizados ao Serviço de Comunicação por E-mail.

Verificação de pré-requisitos

  • Em um terminal ou janela de comando, execute node --version para verificar se Node.js está instalado.
  • Para exibir os domínios verificados com seu recurso Serviços de Comunicação por Email, entre no portal do Azure, localize seu recurso Serviços de Comunicação por Email e abra a guia Provisionar domínios no painel de navegação esquerdo.

Configurar o ambiente do aplicativo

Criar um novo aplicativo Node.js

Primeiro, abra o terminal ou a janela de comando, crie um novo 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 npm install comando para instalar a biblioteca de cliente de Email dos Serviços de Comunicação do Azure para JavaScript.

npm install @azure/communication-email --save

A --save opção lista a biblioteca como uma dependência em seu arquivo package.json .

Criando o cliente de e-mail com autenticação

Existem algumas opções diferentes disponíveis para autenticar um cliente de e-mail:

Importe o EmailClient da biblioteca do cliente e instancie-o com sua cadeia de conexão.

O código a seguir recupera a cadeia de conexão para o recurso de uma variável de ambiente nomeada COMMUNICATION_SERVICES_CONNECTION_STRING usando o pacote dotenv. Use o npm install comando para instalar o pacote dotenv. Saiba como gerir a cadeia de ligação do seu recurso.

npm install dotenv

Adicione o seguinte código ao 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, esse guia de início rápido usa cadeias de conexão, mas em ambientes de produção, recomendamos o uso de entidades de serviço.

Enviar uma mensagem de e-mail com anexos

Podemos adicionar um anexo definindo um objeto de anexo e adicionando-o à nossa mensagem. Leia o arquivo anexo e codifice-o usando Base64.

const filePath = "<path-to-your-file>";

const message = {
  sender: "<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 JavaScript SDK.>"
  },
  recipients: {
    to: [
      {
        address: "<emailalias@emaildomain.com>",
        displayName: "Customer Name",
      }
    ]
  },
  attachments: [
    {
      name: path.basename(filePath),
      contentType: "<mime-type-for-your-file>",
      contentInBase64: readFileSync(filePath, "base64"),
    }
  ]
};

const poller = await emailClient.beginSend(message);
const response = await poller.pollUntilDone();

Tipos MIME permitidos

Para obter mais informações sobre tipos MIME aceitáveis para anexos de e-mail, consulte a documentação de tipos MIME permitidos.

Código de exemplo

Você pode baixar o aplicativo de exemplo demonstrando essa ação do GitHub

Comece a usar os Serviços de Comunicação do Azure usando o SDK de Email Java dos Serviços de Comunicação para enviar mensagens de email.

Gorjeta

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 de Email Básico e Envio de Email Avançado no GitHub.

Noções básicas sobre o modelo de objeto de email

As classes e 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 Esta classe contém um endereço de e-mail e uma opção para um nome de exibição.
EmailAttachment Essa interface cria um anexo de e-mail aceitando uma ID exclusiva, uma cadeia de caracteres do tipo MIME do anexo de e-mail, uma cadeia de caracteres de bytes de conteúdo e uma ID de conteúdo opcional para defini-lo como um anexo embutido.
EmailClient Esta classe é necessária para todas as funcionalidades de e-mail. Você o instancia com sua cadeia de conexão e o usa para enviar mensagens de email.
Mensagem de e-mail Essa classe combina o remetente, o conteúdo e os destinatários. Opcionalmente, também podem ser adicionados cabeçalhos, anexos e endereços de e-mail de resposta personalizados.
EmailSendResult Esta classe contém os resultados da operação de envio de e-mail. Ele tem um 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 email.

EmailSendResult retorna o seguinte status na operação de email executada.

Nome do status Description
NOT_STARTED Não estamos enviando esse status do nosso serviço no momento.
IN_PROGRESS A operação de envio de e-mail está atualmente em andamento e 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 email além desse estágio pode ser obtido por meio do Azure Monitor ou da Grade de Eventos do Azure. Saiba como subscrever eventos por e-mail
COM FALHAS A operação de envio de e-mail não foi bem-sucedida e encontrou um erro. O e-mail não foi enviado. O resultado contém um objeto de erro com mais detalhes sobre o motivo da falha.

Pré-requisitos

A conclusão deste início rápido incorre num pequeno custo de alguns cêntimos USD ou menos na sua conta do Azure.

Nota

Também podemos enviar um e-mail do nosso próprio domínio verificado Adicionar domínios verificados personalizados ao Serviço de Comunicação por E-mail.

Verificação de pré-requisitos

  • Em um terminal ou janela de comando, execute mvn -v para verificar se o Maven está instalado.
  • Para exibir os domínios verificados com seu recurso Serviços de Comunicação por Email, entre no portal do Azure. Localize o recurso Serviços de Comunicação por Email e abra a guia Provisionar domínios no painel de navegação esquerdo.

Configurar o ambiente do aplicativo

Para configurar um ambiente para enviar e-mails, siga as etapas nas seções a seguir.

Criar uma nova aplicação Java

Abra seu terminal ou janela de comando e navegue até o diretório onde você gostaria de criar sua aplicação Java. Execute o seguinte comando 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 generate meta cria um diretório com o mesmo nome do artifactId valor. Neste 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 Project Object Model (POM) do projeto.

Instalar o pacote

Abra o arquivo pom.xml no 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 a estrutura do aplicativo

Abra /src/main/java/com/communication/quickstart/App.java em um editor de texto, adicione diretivas de importação e remova a System.out.println("Hello world!"); instrução:

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 e-mail:

Para autenticar um cliente, instancie um EmailClient com sua cadeia de conexão. Saiba como gerir a cadeia de ligação do seu recurso. Você também pode inicializar o cliente com qualquer cliente HTTP personalizado que implemente a com.azure.core.http.HttpClient interface.

Para instanciar um cliente, adicione o seguinte código ao main método:

// 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, esse guia de início rápido usa cadeias de conexão, mas em ambientes de produção, recomendamos o uso de entidades de serviço.

Enviar uma mensagem de e-mail com anexos

Podemos adicionar um anexo definindo um objeto EmailAttachment e adicionando-o ao nosso objeto EmailMessage. Leia o arquivo anexo e codifice-o usando Base64.

BinaryData attachmentContent = BinaryData.fromFile(new File("C:/attachment.txt").toPath());
EmailAttachment attachment = new EmailAttachment(
    "attachment.txt",
    "text/plain",
    attachmentContent
);

EmailMessage message = new EmailMessage()
    .setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
    .setToRecipients("<emailalias@emaildomain.com>")
    .setSubject("Welcome to Azure Communication Services Email")
    .setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.");
    .setAttachments(attachment);

SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null);
PollResponse<EmailSendResult> response = poller.waitForCompletion();

System.out.println("Operation Id: " + response.getValue().getId());

Tipos MIME permitidos

Para obter mais informações sobre tipos MIME aceitáveis para anexos de e-mail, consulte a documentação de tipos MIME permitidos.

Código de exemplo

Você pode baixar o aplicativo de exemplo demonstrando essa ação do GitHub

Comece a usar os Serviços de Comunicação do Azure usando o SDK de Email Python dos Serviços de Comunicação para enviar mensagens de email.

Gorjeta

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 de Email Básico e Envio de Email Avançado no GitHub.

Noções básicas sobre o modelo de objeto de email

O seguinte modelo de mensagem JSON & objeto de resposta 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 mais detalhadamente na tabela a seguir.

Nome do status Description
InProgress A operação de envio de e-mail está atualmente em andamento e sendo processada.
Com êxito 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 email além desse estágio pode ser obtido por meio do Azure Monitor ou da Grade de Eventos do Azure. Saiba como subscrever eventos por e-mail
Com falhas A operação de envio de e-mail não foi bem-sucedida e encontrou um erro. O e-mail não foi enviado. O resultado contém um objeto de erro com mais detalhes sobre o motivo da falha.

Pré-requisitos

A conclusão deste início rápido implica um pequeno custo de alguns cêntimos de USD ou menos na sua conta do Azure.

Nota

Também podemos enviar um e-mail a partir do nosso próprio domínio verificado. Adicione domínios verificados personalizados ao Serviço de Comunicação por E-mail.

Verificação de pré-requisitos

  • Em um terminal ou janela de comando, execute o comando para verificar se o python --version Python está instalado.
  • Para exibir os domínios verificados com seu recurso Serviços de Comunicação por Email, entre no portal do Azure. Localize o recurso Serviços de Comunicação por Email e abra a guia Provisionar domínios no painel de navegação esquerdo.

Configurar o ambiente do aplicativo

Para configurar um ambiente para enviar e-mails, siga as etapas nas seções a seguir.

Criar uma aplicação Python nova

  1. Abra o terminal ou a janela de comando. Em seguida, use o seguinte comando para criar um ambiente virtual e ativá-lo. Este comando cria um novo diretório para seu aplicativo.

    python -m venv email-quickstart
    
  2. Navegue até o diretório raiz do ambiente virtual e ative-o usando os seguintes comandos.

    cd email-quickstart
    .\Scripts\activate
    
  3. Use um editor de texto para criar um arquivo chamado send-email.py no diretório raiz do projeto e adicionar a estrutura para o programa, incluindo o tratamento básico de exceções.

    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ê adiciona todo o código-fonte desse início rápido ao arquivo de send-email.py que você criou.

Instalar o pacote

Enquanto ainda estiver no diretório do aplicativo, instale o pacote 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 e-mail:

Instancie um EmailClient com sua cadeia de conexão. Saiba como gerir a cadeia de ligaçã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, esse guia de início rápido usa cadeias de conexão, mas em ambientes de produção, recomendamos o uso de entidades de serviço.

Enviar uma mensagem de e-mail com anexos

Podemos adicionar um anexo definindo um attachment e adicionando-o attachments ao do nosso message objeto. Leia o arquivo anexo e codifice-o usando Base64. Decodifice os bytes como uma cadeia de caracteres e passe-os para o attachment objeto.

import base64

with open("<path-to-your-attachment>", "rb") as file:
    file_bytes_b64 = base64.b64encode(file.read())

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"
            }
        ]
    },
    "senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
    "attachments": [
        {
            "name": "<your-attachment-name>",
            "contentType": "<your-attachment-mime-type>",
            "contentInBase64": file_bytes_b64.decode()
        }
    ]
}

poller = email_client.begin_send(message)
result = poller.result()

Tipos MIME permitidos

Para obter mais informações sobre tipos MIME aceitáveis para anexos de e-mail, consulte a documentação de tipos MIME permitidos.

Código de exemplo

Você pode baixar o aplicativo de exemplo demonstrando essa ação do GitHub

Resolução de Problemas

Entrega de e-mail

Para solucionar problemas relacionados à entrega de e-mails, você pode obter o status da entrega de e-mails para capturar detalhes de entrega.

Importante

O resultado de sucesso retornado pela sondagem para o status da operação de envio apenas valida o fato de que o e-mail foi enviado com sucesso para entrega. Para obter informações adicionais sobre o status da entrega no final do destinatário, você precisará consultar como lidar com eventos de e-mail.

Limitação de e-mail

Se você vir que seu aplicativo está travado, pode ser devido ao envio de e-mail estar limitado. Você pode lidar com isso por meio de registro em log ou implementando uma política personalizada.

Nota

Esta configuração de sandbox é para ajudar os desenvolvedores a começar a criar o aplicativo. Você pode solicitar gradualmente para aumentar o volume de envio assim que o aplicativo estiver pronto para entrar em operação. Envie uma solicitação de suporte para aumentar o limite de envio desejado se 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, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele. Saiba mais sobre a limpeza de recursos.

Próximos passos

Neste início rápido, você aprendeu como enviar um email com anexos usando os Serviços de Comunicação do Azure.

Você também pode querer: