Rebotes de correo electrónico y notificaciones de entrega

Al enviar un correo electrónico, desea saber si se entregó correctamente al destinatario. Igualmente importante es la capacidad de detectar y gestionar los rebotes de correo electrónico, que se producen cuando no se puede entregar un correo electrónico. Pueden ocurrir por varios motivos, incluidas direcciones de correo electrónico no válidas, buzones de correo llenos o problemas con el servidor. Detectar estos rebotes es vital para mantener una lista de correo electrónico limpia y actualizada y garantizar que sus mensajes lleguen a las personas adecuadas. En este artículo, exploraremos cómo manejar eficazmente los rebotes de correo electrónico y las notificaciones de entrega en el entorno C# .NET.

API C# .NET para gestionar rebotes de correo electrónico y notificaciones de entrega

Para administrar de manera eficiente los rebotes de correo electrónico y las notificaciones de entrega en C# .NET, usaremos la biblioteca Aspose.Email, que ofrece un conjunto completo de herramientas y funcionalidades para tareas relacionadas con el correo electrónico. Aspose.Email for .NET. Puede utilizar el potencial de la API adquiriendo su DLL a través de descargar o instalándola desde NuGet usando el siguiente comando:

PM> Install-Package Aspose.Email

Envío de un correo electrónico con notificaciones de entrega

El siguiente fragmento de código demuestra cómo crear un mensaje de correo electrónico y configurar notificaciones de entrega usando Aspose.Email. Este código le permite crear un mensaje de correo electrónico, especificar las direcciones del remitente y del destinatario y configurar notificaciones de entrega para éxito y fracaso. Además, agrega encabezados MIME al mensaje para un seguimiento más completo. El código realiza los siguientes pasos:

  1. Cree un nuevo mensaje de correo electrónico: el código comienza creando un nuevo objeto MailMessage. MailMessage es una clase que representa un mensaje eml que se puede enviar.

  2. Establecer notificaciones de entrega: las DeliveryNotificationOptions están configuradas para ser OnSuccess y OnFailure. Esto significa que al remitente le gustaría recibir un informe de entrega si el mensaje se entregó correctamente o si la entrega falla.

  3. Agregue encabezados MIME para notificaciones de lectura y disposición: los encabezados del objeto de mensaje se utilizan para agregar encabezados “Recibo de lectura para” y “Notificación de disposición para” con el correo electrónico del remitente. Estos encabezados solicitan notificaciones de lectura y disposición a la dirección de correo electrónico del remitente tras la recepción y manipulación del correo electrónico por parte del destinatario, respectivamente.

  4. Configure el cliente SMTP: la clase SmtpClient se utiliza para enviar mensajes de correo electrónico. Se crea una instancia de esta clase con las credenciales de usuario y host especificadas.

  5. Enviar el mensaje: Finalmente, se llama al método Enviar del objeto SmtpClient con el objeto MailMessage como argumento para enviar el correo electrónico.

// Crea el mensaje
MailMessage msg = new MailMessage();
msg.From = "sender@sender.com";
msg.To = "receiver@receiver.com";
msg.Subject = "the subject of the message";

// Configure notificaciones de entrega para mensajes exitosos y fallidos y agregue los encabezados MIME
msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.OnFailure;
msg.Headers.Add("Read-Receipt-To", "sender@sender.com");
msg.Headers.Add("Disposition-Notification-To", "sender@sender.com");

// enviar el mensaje
SmtpClient client = new SmtpClient("host", "username", "password");
client.Send(msg);

Manejo de rebotes de correo electrónico

Además de garantizar una entrega exitosa del correo electrónico, puede aprovechar las funciones de la biblioteca para gestionar los rebotes. El siguiente código de ejemplo muestra cómo cargar y verificar el estado de un mensaje de correo electrónico devuelto. Recupera y muestra información importante sobre un correo electrónico devuelto, como el nombre del archivo, el estado del rebote, la acción, el destinatario, el motivo, el estado y la dirección de correo electrónico del destinatario del mensaje original. El código realiza los siguientes pasos:

  1. El código comienza creando una instancia de la clase MailMessage para cargar el mensaje de correo electrónico desde el archivo especificado usando el método Load.

  2. Luego verifica si el correo electrónico ha sido devuelto llamando al método CheckBounced. El resultado de esta operación se almacena en un objeto BounceResult.

  3. Luego, el código procede a imprimir el nombre del archivo en la consola, proporcionando información detallada sobre el mensaje a través de las siguientes propiedades:

MailMessage mail = MailMessage.Load(fileName);
BounceResult result = mail.CheckBounced();
Console.WriteLine(fileName);
Console.WriteLine("IsBounced : " + result.IsBounced);
Console.WriteLine("Action : " + result.Action);
Console.WriteLine("Recipient : " + result.Recipient);
Console.WriteLine();
Console.WriteLine("Reason : " + result.Reason);
Console.WriteLine("Status : " + result.Status);
Console.WriteLine("OriginalMessage ToAddress 1: " + result.OriginalMessage.To[0].Address);
Console.WriteLine();

Conclusión

En este artículo, llamamos su atención sobre la importancia de los rebotes de correo electrónico y las notificaciones de entrega. También proporcionamos formas de su manejo respaldadas con ejemplos de código. Ahora tienes potentes herramientas a tu disposición para permitir la entrega exitosa de correos electrónicos y gestionar los rebotes que puedan ocurrir. Al incorporar estas prácticas en sus proyectos, puede lograr una comunicación por correo electrónico eficaz en un entorno C# .NET y garantizar que sus mensajes lleguen a los destinatarios previstos.

Para obtener información más detallada u otras características de Aspose.Email for .NET puede dirigirse a nuestra documentación. En caso de que tenga preguntas o tenga alguna dificultad, visite nuestro foro.

Ver también