Biblioteca de clientes do Email de Comunicação do Azure para Python – versão 1.0.0
Este pacote contém um SDK do Python para Serviços de Comunicação do Azure para Email.
Principais conceitos
O pacote Email de Comunicação do Azure é usado para enviar emails para vários tipos de destinatários.
Introdução
Pré-requisitos
Você precisa de uma assinatura do Azure, um Recurso do Serviço de Comunicação e um recurso de comunicação Email com um domínio ativo.
Para criar esses recursos, você pode usar o Portal do Azure, o Azure PowerShell ou a biblioteca de clientes de gerenciamento do .NET.
Instalando o
Instale a biblioteca de clientes do Email de Comunicação do Azure para Python com pip:
pip install azure-communication-email
Exemplos
EmailClient
fornece a funcionalidade para enviar mensagens de email.
Autenticação
Email clientes podem ser autenticados usando a cadeia de conexão adquirida de um Recurso de Comunicação do Azure no Portal do Azure.
from azure.communication.email import EmailClient
connection_string = "endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>"
client = EmailClient.from_connection_string(connection_string);
Como alternativa, você também pode usar a autenticação do Active Directory usando DefaultAzureCredential.
from azure.communication.email import EmailClient
from azure.identity import DefaultAzureCredential
# To use Azure Active Directory Authentication (DefaultAzureCredential) make sure to have AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET as env variables.
endpoint = "https://<resource-name>.communication.azure.com"
client = EmailClient(endpoint, DefaultAzureCredential())
Os clientes de e-mail também podem ser autenticados usando um AzureKeyCredential.
from azure.communication.email import EmailClient
from azure.core.credentials import AzureKeyCredential
credential = AzureKeyCredential("<api_key>")
endpoint = "https://<resource-name>.communication.azure.com/"
client = EmailClient(endpoint, credential);
Enviar uma mensagem de Email
Para enviar um e-mail, busque a begin_send
função do EmailClient
. Isso retornará um sondador. Você pode usar esse sondador para marcar no status da operação e recuperar o resultado depois que ele for concluído.
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
"html": "<html><h1>This is the body</h1></html>"
},
"recipients": {
"to": [
{
"address": "customer@domain.com",
"displayName": "Customer Name"
}
]
},
"senderAddress": "sender@contoso.com"
}
poller = email_client.begin_send(message)
result = poller.result()
Enviar uma mensagem de Email para vários destinatários
Para enviar uma mensagem de email a vários destinatários, adicione um objeto para cada tipo de destinatário e um objeto para cada destinatário.
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
"html": "<html><h1>This is the body</h1></html>"
},
"recipients": {
"to": [
{"address": "customer@domain.com", "displayName": "Customer Name"},
{"address": "customer2@domain.com", "displayName": "Customer Name 2"}
],
"cc": [
{"address": "ccCustomer@domain.com", "displayName": "CC Customer Name"},
{"address": "ccCustomer2@domain.com", "displayName": "CC Customer Name 2"}
],
"bcc": [
{"address": "bccCustomer@domain.com", "displayName": "BCC Customer Name"},
{"address": "bccCustomer2@domain.com", "displayName": "BCC Customer Name 2"}
]
},
"senderAddress": "sender@contoso.com"
}
poller = email_client.begin_send(message)
result = poller.result()
Enviar Email com anexos
Serviços de Comunicação do Azure dar suporte ao envio de email com anexos.
import base64
with open("C://readme.txt", "r") as file:
file_contents = file.read()
file_bytes_b64 = base64.b64encode(bytes(file_contents, 'utf-8'))
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
"html": "<html><h1>This is the body</h1></html>"
},
"recipients": {
"to": [
{
"address": "customer@domain.com",
"displayName": "Customer Name"
}
]
},
"senderAddress": "sender@contoso.com",
"attachments": [
{
"name": "attachment.txt",
"attachmentType": "text/plain",
"contentInBase64": file_bytes_b64.decode()
}
]
}
poller = email_client.begin_send(message)
result = poller.result()
Solução de problemas
Email operações gerarão uma exceção se a solicitação para o servidor falhar. O cliente Email gerará exceções definidas no Azure Core.
from azure.core.exceptions import HttpResponseError
try:
response = email_client.send(message)
except HttpResponseError as ex:
print('Exception:')
print(ex)
Próximas etapas
Contribuição
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite cla.microsoft.com.
Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.
Azure SDK for Python
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de