Biblioteca cliente de Azure Communication Email para Python: versión 1.0.0
Este paquete contiene un SDK de Python para Azure Communication Services para Email.
Conceptos clave
El paquete azure Communication Email se usa para enviar correos electrónicos a varios tipos de destinatarios.
Introducción
Requisitos previos
Necesita una suscripción de Azure, un recurso de Communication Service y un recurso de comunicación Email con un dominio activo.
Para crear estos recursos, puede usar Azure Portal, el Azure PowerShell o la biblioteca cliente de administración de .NET.
Instalación de
Instale la biblioteca cliente de Azure Communication Email para Python con pip:
pip install azure-communication-email
Ejemplos
EmailClient
proporciona la funcionalidad para enviar mensajes de correo electrónico.
Autenticación
Email clientes se pueden autenticar mediante la cadena de conexión adquirida desde un recurso de comunicación de Azure en Azure Portal.
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, también puede usar la autenticación de Active Directory mediante 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())
Los clientes de correo electrónico también se pueden autenticar mediante 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 un mensaje de Email
Para enviar un mensaje de correo electrónico, llame a la función begin_send
desde EmailClient
. Esto devolverá un sondeo. Puede usar este sondeo para comprobar el estado de la operación y recuperar el resultado una vez finalizado.
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 un mensaje de Email a varios destinatarios
Para enviar un mensaje de correo electrónico a varios destinatarios, agregue un objeto para cada tipo de destinatario y un objeto para cada destinatario.
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()
Envío de Email con datos adjuntos
Azure Communication Services admite el envío de correo electrónico con datos adjuntos.
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()
Solución de problemas
Email operaciones producirán una excepción si se produce un error en la solicitud al servidor. El cliente de Email generará excepciones definidas en Azure Core.
from azure.core.exceptions import HttpResponseError
try:
response = email_client.send(message)
except HttpResponseError as ex:
print('Exception:')
print(ex)
Pasos siguientes
Contribuciones
Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para obtener más información, visite cla.microsoft.com.
Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.
Azure SDK for Python