Inicio rápido: Enviar un correo electrónico a varios destinatarios
En este inicio rápido, aprenderá sobre cómo enviar un correo electrónico a varios destinatarios mediante los SDK de Email.
Para empezar a usar Azure Communication Services, utilice la biblioteca cliente de correo electrónico de Communication Services .NET para enviar mensajes por correo electrónico.
Sugerencia
Inicie la experiencia de envío de correo electrónico con Azure Communication Services omitiendo directamente todo hasta el código de ejemplo Envío de correo electrónico básico y Envío de correo electrónico avanzado en GitHub.
Descripción del modelo de objetos de correo electrónico
Las clases e interfaces siguientes controlan algunas de las características principales de la biblioteca cliente de correo electrónico de Azure Communication Services para C#.
Nombre | Descripción |
---|---|
EmailAddress | Esta clase contiene una dirección de correo electrónico y una opción de nombre para mostrar. |
EmailAttachment | Esta clase crea datos adjuntos de correo electrónico aceptando un identificador único, una cadena de tipo MIME de datos adjuntos de correo electrónico, datos binarios para el contenido y un identificador de contenido opcional para definirlo como datos adjuntos insertados. |
EmailClient | La clase es necesaria para toda la funcionalidad del correo electrónico. Cree una instancia de ella con la cadena de conexión y úsela para enviar mensajes de correo electrónico. |
EmailClientOptions | Esta clase se puede agregar a la creación de instancias de EmailClient para tener como destino una versión de API específica. |
EmailContent | Esta clase contiene el asunto y el cuerpo del mensaje de correo electrónico. Debe especificar al menos uno de los contenidos PlainText o Html |
EmailCustomHeader | Esta clase permite agregar un par nombre-valor para un encabezado personalizado. La importancia del correo electrónico también se puede especificar mediante estos encabezados con el nombre de encabezado "x-priority" o "x-msmail-priority". |
EmailMessage | Esta clase combina el remitente, el contenido y los destinatarios. También se pueden agregar encabezados personalizados, datos adjuntos y direcciones de correo electrónico de respuesta. |
EmailRecipients | Esta clase contiene listas de objetos EmailAddress para los destinatarios de mensajes de correo electrónico, incluyendo las listas opcionales para los destinatarios CC y CCO. |
EmailSendOperation | Esta clase representa la operación asincrónica de envío de correo electrónico y se devuelve desde la llamada API de envío de correo electrónico. |
EmailSendResult | Esta clase contiene los resultados de la operación de envío de correo electrónico. Tiene un identificador de operación, un estado de la operación y un objeto de error (cuando proceda). |
EmailSendResult devuelve el siguiente estado de la operación de correo electrónico realizada.
Estado | Descripción |
---|---|
NotStarted | No estamos enviando este estado desde nuestro servicio en este momento. |
En ejecución | La operación de envío de correo electrónico está actualmente en curso y se está procesando. |
Correcto | La operación de envío de correo electrónico se ha completado sin errores y el correo electrónico ha salido para su entrega. Cualquier estado detallado sobre la entrega de correo electrónico más allá de esta fase se puede obtener mediante Azure Monitor o Azure Event Grid. Aprenda a suscribirse a eventos de correo electrónico |
Con error | La operación de envío de correo electrónico no se realizó correctamente y encontró un error. El correo electrónico no se ha enviado. El resultado contiene un objeto de error con más detalles sobre el motivo del error. |
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- La versión más reciente de la biblioteca cliente de .NET Core para su sistema operativo.
- Un recurso de Azure Email Communication Services creado y listo con un dominio aprovisionado. Comenzar con la creación de un recurso de comunicación por correo electrónico
- Un recurso activo de Communication Services conectado con el dominio de correo electrónico y una cadena de conexión. Comenzar conectando el recurso de correo electrónico con un recurso de comunicación
Este inicio rápido supone un pequeño costo en su cuenta de Azure.
Nota
También podemos enviar un correo electrónico desde nuestro propio dominio verificado. Agregar dominios personalizados verificados a Email Communication Services.
Comprobación de requisitos previos
- En una ventana de terminal o de comandos, ejecute
dotnet
para comprobar que la biblioteca cliente de .NET esté instalada. - Para ver los subdominios asociados a su recurso de correo electrónico Email Communication Services, inicie sesión en Azure Portal, busque el recurso Email Communication Services y abra la pestaña Aprovisionar dominios en el panel de navegación izquierdo.
Creación de una aplicación de C#
En una ventana de consola (por ejemplo, cmd, PowerShell o Bash), use el comando dotnet new
para crear una nueva aplicación de consola con el nombre EmailQuickstart
. Este comando crea un sencillo proyecto "Hola mundo" de C# con un solo archivo de origen: Program.cs.
dotnet new console -o EmailQuickstart
Cambie el directorio a la carpeta de la aplicación recién creada y use el comando dotnet build
para compilar la aplicación.
cd EmailQuickstart
dotnet build
Instalar el paquete
Mientras sigue en el directorio de aplicaciones, instale el paquete de la biblioteca cliente de correo electrónico de Azure Communication Services para .NET con el comando dotnet add package
.
dotnet add package Azure.Communication.Email
Creación del cliente de correo electrónico con autenticación
Abra Program.cs y reemplace el código existente por lo siguiente para agregar directivas using
a fin de incluir el espacio de nombres Azure.Communication.Email
y un punto inicial para la ejecución de su 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)
{
}
}
}
Hay algunas opciones diferentes disponibles para autenticar un cliente de correo electrónico:
Abra Program.cs en un editor de texto y reemplace el cuerpo del método Main
por el código para inicializar EmailClient
con la cadena de conexión. El siguiente código recupera la cadena de conexión para el recurso de una variable de entorno denominada COMMUNICATION_SERVICES_CONNECTION_STRING
. Aprenda a administrar la cadena de conexión del 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);
Envío de un mensaje de correo electrónico a varios destinatarios
Podemos definir varios destinatarios agregando más elementos EmailAddresses al objeto EmailRecipients. Estas direcciones se pueden agregar como To
, CC
o destinatarios de BCC
. Opcionalmente, también podemos agregar una dirección de correo electrónico de ReplyTo
para recibir las respuestas.
// 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}");
}
Ejecute la aplicación desde el directorio de la aplicación con el comando dotnet run
.
dotnet run
Código de ejemplo
Puede descargar la aplicación de ejemplo en la que se muestra esta acción de GitHub.
Para empezar a usar Azure Communication Services, utilice la biblioteca cliente de correo electrónico de JS de Communication Services para enviar mensajes por correo electrónico.
Sugerencia
Inicie la experiencia de envío de correo electrónico con Azure Communication Services omitiendo directamente todo hasta el código de ejemplo Envío de correo electrónico básico y Envío de correo electrónico avanzado en GitHub.
Descripción del modelo de objetos de correo electrónico
Las clases e interfaces siguientes controlan algunas de las características principales de la biblioteca cliente de correo electrónico de Azure Communication Services para JavaScript.
Nombre | Descripción |
---|---|
EmailAddress | Esta clase contiene una dirección de correo electrónico y una opción de nombre para mostrar. |
EmailAttachment | Esta clase crea datos adjuntos de correo electrónico aceptando un identificador único, una cadena de tipo MIME de datos adjuntos de correo electrónico, datos binarios para el contenido y un identificador de contenido opcional para definirlo como datos adjuntos insertados. |
EmailClient | La clase es necesaria para toda la funcionalidad del correo electrónico. Cree una instancia de ella con la cadena de conexión y úsela para enviar mensajes de correo electrónico. |
EmailClientOptions | Esta clase se puede agregar a la creación de instancias de EmailClient para tener como destino una versión de API específica. |
EmailContent | Esta clase contiene el asunto y el cuerpo del mensaje de correo electrónico. Debe especificar al menos uno de los contenidos PlainText o Html. |
EmailCustomHeader | Esta clase permite agregar un par nombre-valor para un encabezado personalizado. La importancia del correo electrónico también se puede especificar mediante estos encabezados con el nombre de encabezado "x-priority" o "x-msmail-priority". |
EmailMessage | Esta clase combina el remitente, el contenido y los destinatarios. También se pueden agregar encabezados personalizados, datos adjuntos y direcciones de correo electrónico de respuesta. |
EmailRecipients | Esta clase contiene listas de objetos EmailAddress para los destinatarios de mensajes de correo electrónico, incluyendo las listas opcionales para los destinatarios CC y CCO. |
EmailSendResult | Esta clase contiene los resultados de la operación de envío de correo electrónico. Tiene un identificador de operación, un estado de la operación y un objeto de error (cuando proceda). |
EmailSendStatus | Esta clase representa el conjunto de estados de una operación de envío de correo electrónico. |
EmailSendResult devuelve el siguiente estado de la operación de correo electrónico realizada.
Nombre del estado | Descripción |
---|---|
isStarted | Devuelve True si la operación de envío de correo electrónico está actualmente en curso y se está procesando. |
IsCompleted | Devuelve True si la operación de envío de correo electrónico se ha completado sin errores y el correo electrónico ha salido para su entrega. Cualquier estado detallado sobre la entrega de correo electrónico más allá de esta fase se puede obtener mediante Azure Monitor o Azure Event Grid. Aprenda a suscribirse a eventos de correo electrónico |
resultado | Propiedad que existe si la operación de envío de correo electrónico ha concluido. |
error | Propiedad que existe si la operación de envío de correo electrónico no se realizó correctamente y encontró un error. El correo electrónico no se ha enviado. El resultado contiene un objeto de error con más detalles sobre el motivo del error. |
Requisitos previos
- Node.js (~14).
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso de Azure Email Communication Services creado y listo con un dominio aprovisionado. Introducción a la creación de un recurso de Email Communication
- Un recurso de Azure Communication Services activo conectado a un dominio de correo electrónico y su cadena de conexión. Introducción a la conexión de un recurso de comunicación de correo electrónico con un recurso de Azure Communication.
Este inicio rápido supone un pequeño costo en su cuenta de Azure.
Nota
También podemos enviar un correo electrónico desde nuestro propio dominio verificado. Agregar dominios personalizados verificados a Email Communication Services.
Comprobación de requisitos previos
- En una ventana de terminal o de comandos, ejecute
node --version
para comprobar que Node.js está instalado. - Para ver los dominios comprobados con su recurso de correo electrónico Email Communication Services, inicie sesión en Azure Portal, busque el recurso Email Communication Services y abra la pestaña Aprovisionar dominios en el panel de navegación izquierdo.
Configuración del entorno de la aplicación
Creación de una nueva aplicación Node.js
En primer lugar, abra la ventana de comandos o de terminal, cree un nuevo directorio para la aplicación y navegue hasta este.
mkdir email-quickstart && cd email-quickstart
Ejecute npm init -y
para crear un archivo package.json con la configuración predeterminada.
npm init -y
Use un editor de texto para crear un archivo denominado send-email.js en el directorio raíz del proyecto. Cambie la propiedad "main" de package.json a "send-email.js". En la sección siguiente se muestra cómo agregar el código fuente de este inicio rápido al archivo recién creado.
Instalar el paquete
Use el comando npm install
para instalar la biblioteca cliente de correo electrónico de Azure Communication Services para JavaScript.
npm install @azure/communication-email --save
La opción --save
muestra la biblioteca como dependencia en el archivo package.json.
Creación del cliente de correo electrónico con autenticación
Hay algunas opciones diferentes disponibles para autenticar un cliente de correo electrónico:
Importe la clase EmailClient desde la biblioteca cliente y cree una instancia con la cadena de conexión.
El código siguiente recupera la cadena de conexión del recurso de una variable de entorno denominada COMMUNICATION_SERVICES_CONNECTION_STRING
mediante el paquete dotenv. Use el comando npm install
para instalar el paquete dotenv. Aprenda a administrar la cadena de conexión del recurso.
npm install dotenv
Agregue el código siguiente 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 facilitar las cosas, en este inicio rápido se usan cadenas de conexión, pero en los entornos de producción se recomienda usar entidades de servicio.
Envío de un mensaje de correo electrónico 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. Estas direcciones se pueden agregar como To
, CC
o destinatarios de BCC
. Opcionalmente, agregue una dirección de correo electrónico a la propiedad replyTo
si desea recibir respuestas.
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 ejemplo
Puede descargar la aplicación de ejemplo en la que se muestra esta acción de GitHub.
Introducción a Azure Communication Services mediante el SDK de correo electrónico de Communication Services para Java a fin de enviar mensajes de correo electrónico.
Sugerencia
Inicie la experiencia de envío de correo electrónico con Azure Communication Services omitiendo directamente todo hasta el código de ejemplo Envío de correo electrónico básico y Envío de correo electrónico avanzado en GitHub.
Descripción del modelo de objetos de correo electrónico
Las clases e interfaces siguientes controlan algunas de las características principales del SDK de correo electrónico de Azure Communication Services para Python.
Nombre | Descripción |
---|---|
EmailAddress | Esta clase contiene una dirección de correo electrónico y una opción de nombre para mostrar. |
EmailAttachment | Esta interfaz crea datos adjuntos de correo electrónico aceptando un identificador único, una cadena de tipo MIME de datos adjuntos de correo electrónico, una cadena de bytes de contenido y un identificador de contenido opcional para definirlo como datos adjuntos insertados. |
EmailClient | La clase es necesaria para toda la funcionalidad del correo electrónico. Cree una instancia de ella con la cadena de conexión y úsela para enviar mensajes de correo electrónico. |
EmailMessage | Esta clase combina el remitente, el contenido y los destinatarios. También se pueden agregar encabezados personalizados, datos adjuntos y direcciones de correo electrónico de respuesta. |
EmailSendResult | Esta clase contiene los resultados de la operación de envío de correo electrónico. Tiene un identificador de operación, un estado de la operación y un objeto de error (cuando proceda). |
EmailSendStatus | Esta clase representa el conjunto de estados de una operación de envío de correo electrónico. |
EmailSendResult devuelve el siguiente estado de la operación de correo electrónico realizada.
Nombre del estado | Descripción |
---|---|
NOT_STARTED | No estamos enviando este estado desde nuestro servicio en este momento. |
IN_PROGRESS | La operación de envío de correo electrónico está actualmente en curso y se está procesando. |
SUCCESSFULLY_COMPLETED | La operación de envío de correo electrónico se ha completado sin errores y el correo electrónico ha salido para su entrega. Cualquier estado detallado sobre la entrega de correo electrónico más allá de esta fase se puede obtener mediante Azure Monitor o Azure Event Grid. Aprenda a suscribirse a eventos de correo electrónico |
FAILED | La operación de envío de correo electrónico no se realizó correctamente y encontró un error. El correo electrónico no se ha enviado. El resultado contiene un objeto de error con más detalles sobre el motivo del error. |
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Kit de desarrollo de Java (JDK), versión 8 o posterior.
- Apache Maven.
- Un recurso de Communication Services implementado y una cadena de conexión. Para obtener más información, consulte Creación de un recurso de Communication Services.
- Cree un recurso de Azure Email Communication Services para empezar a enviar correos electrónicos.
- Una identidad administrada de configuración para un entorno de desarrollo, consulte Autorización del acceso con identidad administrada.
Este inicio rápido supone un pequeño costo en su cuenta de Azure.
Nota
También podemos enviar un correo electrónico desde nuestro propio dominio verificado Agregar dominios verificados personalizados a Email Communication Service.
Comprobación de requisitos previos
- En una ventana de terminal o de comandos, ejecute
mvn -v
para comprobar que Maven está instalado. - Para ver los dominios comprobados con su recurso de correo electrónico Email Communication Services, inicie sesión en Azure Portal. Busque el recurso Email Communication Services y abra la pestaña Aprovisionar dominios en el panel de navegación izquierdo.
Configuración del entorno de la aplicación
Para configurar un entorno a fin de enviar correos electrónicos, siga los pasos descritos en las secciones siguientes.
Creación de una aplicación Java
Abra la ventana de terminal o de comandos y navegue hasta el directorio en el que quiere crear la aplicación de Java. Ejecute el siguiente comando para generar el proyecto Java desde la plantilla 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"
El objetivo generate
crea un directorio con el mismo nombre que el valor artifactId
. En este directorio, el directorio src/main/java contiene el código fuente del proyecto, el directorio src/test/java contiene el origen de la prueba, y el archivo pom.xml es el modelo de objetos del proyecto (POM).
Instalar el paquete
Abra el archivo pom.xml en el editor de texto. Agregue el siguiente elemento de dependencia al grupo de dependencias.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-email</artifactId>
<version>1.0.0-beta.2</version>
</dependency>
Instalación del marco de la aplicación
Abra /src/main/java/com/communication/quickstart/App.java en un editor de texto, agregue directivas de importación y quite la instrucción 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.
}
}
Creación del cliente de correo electrónico con autenticación
Hay algunas opciones diferentes disponibles para autenticar un cliente de correo electrónico:
Para autenticar un cliente, cree una instancia EmailClient
de con la cadena de conexión. Aprenda a administrar la cadena de conexión del recurso. También puede iniciar el cliente con cualquier cliente HTTP personalizado que implemente la interfaz com.azure.core.http.HttpClient
.
Para crear una instancia de un cliente, agregue el siguiente código al 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 facilitar las cosas, en este inicio rápido se usan cadenas de conexión, pero en los entornos de producción se recomienda usar entidades de servicio.
Envío de un mensaje de correo electrónico a varios destinatarios
Para enviar un mensaje de correo electrónico a varios destinatarios, agregue las nuevas direcciones en el establecedor EmailMessage
adecuado. Estas direcciones se pueden agregar como To
, CC
o destinatarios de BCC
. Opcionalmente, agregue una dirección de correo electrónico a la propiedad replyTo
si desea recibir respuestas.
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 aún más los destinatarios del mensaje de correo electrónico, puede crear instancias de los objetos EmailAddress
y pasarlos a los establecedores EmailMessage
adecuados.
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 ejemplo
Puede descargar la aplicación de ejemplo en la que se muestra esta acción de GitHub.
Introducción a Azure Communication Services mediante el SDK de correo electrónico de Communication Services para Python a fin de enviar mensajes de correo electrónico.
Sugerencia
Inicie la experiencia de envío de correo electrónico con Azure Communication Services omitiendo directamente todo hasta el código de ejemplo Envío de correo electrónico básico y Envío de correo electrónico avanzado en GitHub.
Descripción del modelo de objetos de correo electrónico
La plantilla de mensaje JSON y objeto de respuesta siguientes muestran algunas de las características principales del SDK de correo electrónico de Azure Communication Services 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.
}
}
Los valores response.status
se explican con más detalle en la tabla siguiente.
Nombre del estado | Descripción |
---|---|
InProgress | La operación de envío de correo electrónico está actualmente en curso y se está procesando. |
Correcto | La operación de envío de correo electrónico se ha completado sin errores y el correo electrónico ha salido para su entrega. Cualquier estado detallado sobre la entrega de correo electrónico más allá de esta fase se puede obtener mediante Azure Monitor o Azure Event Grid. Aprenda a suscribirse a eventos de correo electrónico |
Con error | La operación de envío de correo electrónico no se realizó correctamente y encontró un error. El correo electrónico no se ha enviado. El resultado contiene un objeto de error con más detalles sobre el motivo del error. |
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Versión 3.7 o superiores de Python.
- Un recurso de Azure Email Communication Services creado y listo con un dominio aprovisionado. Introducción a la creación de un recurso de Email Communication
- Un recurso de Azure Communication Services activo conectado a un dominio de correo electrónico y su cadena de conexión. Introducción a la conexión de un recurso de comunicación de correo electrónico con un recurso de Azure Communication.
Este inicio rápido supone un pequeño costo en su cuenta de Azure.
Nota
También podemos enviar un correo electrónico desde nuestro propio dominio verificado. Agregar dominios personalizados verificados a Email Communication Services.
Comprobación de requisitos previos
- En una ventana de terminal o de comandos, ejecute
python --version
para comprobar que Python está instalado. - Para ver los dominios comprobados con su recurso de correo electrónico Email Communication Services, inicie sesión en Azure Portal. Busque el recurso Email Communication Services y abra la pestaña Aprovisionar dominios en el panel de navegación izquierdo.
Configuración del entorno de la aplicación
Para configurar un entorno a fin de enviar correos electrónicos, siga los pasos descritos en las secciones siguientes.
Creación de una nueva aplicación de Python
Abra el terminal o la ventana de comandos. A continuación, use el siguiente comando para crear un entorno virtual y activarlo. Este comando crea un nuevo directorio para la aplicación.
python -m venv email-quickstart
Vaya al directorio raíz del entorno virtual y actívelo con los siguientes comandos.
cd email-quickstart .\Scripts\activate
Use un editor de texto para crear un archivo denominado send-email.py en el directorio raíz del proyecto y agregue la estructura del programa, incluido el control de excepciones básico.
import os from azure.communication.email import EmailClient try: # Quickstart code goes here. except Exception as ex: print('Exception:') print(ex)
En las secciones siguientes, agregará todo el código fuente de este inicio rápido al archivo send-email.py que ha creado.
Instalar el paquete
Mientras sigue en el directorio de la aplicación, instale el paquete del SDK de correo electrónico de Azure Communication Services para Python con el siguiente comando.
pip install azure-communication-email
Creación del cliente de correo electrónico con autenticación
Hay algunas opciones diferentes disponibles para autenticar un cliente de correo electrónico:
Cree una instancia de EmailClient con la cadena de conexión. Aprenda a administrar la cadena de conexión del recurso.
# Create the EmailClient object that you use to send Email messages.
email_client = EmailClient.from_connection_string(<connection_string>)
Para facilitar las cosas, en este inicio rápido se usan cadenas de conexión, pero en los entornos de producción se recomienda usar entidades de servicio.
Envío de un mensaje de correo electrónico a varios destinatarios
Podemos definir varios destinatarios agregando más direcciones de correo electrónico al objeto recipients
. Estas direcciones se pueden agregar como listas de destinatarios to
, cc
o bcc
en consecuencia. Opcionalmente, también podemos agregar una dirección de correo electrónico de ReplyTo
para recibir las respuestas.
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 ejemplo
Puede descargar la aplicación de ejemplo en la que se muestra esta acción de GitHub.
Solución de problemas
Entrega de correo electrónico
Para solucionar incidencias relacionadas con la entrega de correo electrónico, puede obtener el estado de la entrega de correo electrónico para capturar los detalles de la entrega.
Importante
El resultado correcto devuelto por el sondeo del estado de la operación de envío solo valida el hecho de que el correo electrónico se haya enviado correctamente para su entrega. Para obtener información adicional sobre el estado de la entrega en el extremo del destinatario, deberá hacer referencia a cómo controlar los eventos de correo electrónico.
limitación de correo electrónico
Si ve que la aplicación se bloquea, podría deberse a que el envío de correo electrónico está limitado. Puede controlarlo mediante el registro o mediante la implementación de una directiva personalizada.
Nota
Esta configuración de espacio aislado sirve para ayudar a los desarrolladores a empezar a compilar la aplicación. Puede solicitar gradualmente aumentar el volumen de envío una vez que la aplicación esté lista para publicarse. Envíe una solicitud de soporte técnico para aumentar el límite de envío deseado si necesita enviar un volumen de mensajes que supere los límites de frecuencia.
Limpieza de recursos de Azure Communication Service
Si quiere limpiar y quitar una suscripción a Communication Services, puede eliminar el recurso o grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él. Obtenga más información sobre la limpieza de recursos.
Pasos siguientes
En este inicio rápido, ha aprendido a sondear manualmente el estado al enviar correo electrónico mediante Azure Communication Services.
Puede que también le interese:
- Obtenga información sobre cómo sondear manualmente el estado del correo electrónico
- Más información sobre el envío de correo electrónico con datos adjuntos
- Familiarizarse con la biblioteca cliente de correo electrónico