借助Aspose.Email控件,开发电子邮件退回和送达通知功能

发布时间:2024年01月15日

发送电子邮件时,您想知道它是否已成功发送给收件人。同样重要的是能够检测和管理电子邮件退回(当电子邮件无法送达时发生)。发生这种情况的原因有多种,包括无效的电子邮件地址、邮箱已满或服务器问题。检测这些退回邮件对于维护干净且最新的电子邮件列表并确保您的邮件到达正确的人至关重要。在本文中,我们将探讨如何在 C# .NET 环境中有效处理电子邮件退回和送达通知。

电子邮件退回和送达通知

Aspose.Email?是用于轻松的开发?email?功能的应用程序的一组控件,基于 ?ASP.NET?的Web应用、Web服务和Windows?应用。支持?Outlook?PST,?EML,?MSG,?and?MHT?格式.?允许开发者直接与?SMTP,?POP,?FTP,?和?MS?Exchange?服务器进行工作。支持邮件合并、行事历、定制邮件标题和内容、嵌入文件等,Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.Email 最新下载(qun:666790229)icon-default.png?t=N7T8https://www.evget.com/product/3081/download

用于处理电子邮件退回和送达通知的 C# .NET API

为了在 C# .NET 中有效管理电子邮件退回和送达通知,我们将使用 Aspose.Email 库,它为电子邮件相关任务提供了一套全面的工具和功能。Aspose.Email for .NET。您可以通过下载获取其 DLL 或使用以下命令从NuGet安装它来发挥 API 的潜力:

PM> Install-Package Aspose.Email
发送带有送达通知的电子邮件

下面的代码片段演示了如何使用 Aspose.Email 创建电子邮件并设置送达通知。此代码允许您创建电子邮件、指定发件人和收件人地址以及配置成功和失败的传递通知。此外,它还向邮件添加 MIME 标头以进行更全面的跟踪。该代码执行以下步骤:

  1. 创建新的电子邮件消息:代码首先创建一个新的 MailMessage 对象。MailMessage是一个表示可以发送的 eml 消息的类。
  2. 设置投递通知:DeliveryNotificationOptions设置为 OnSuccess 和 OnFailure。这意味着发件人希望在邮件成功传递或传递失败时收到传递报告。
  3. 为读取和处置通知添加 MIME 标头:消息对象的标头用于添加“Read-Receipt-To”和“Disposition-Notification-To”标头以及发件人的电子邮件。这些标头分别请求在收件人收到和处理电子邮件时向发件人的电子邮件地址发出读取和处理通知。
  4. 设置 SMTP 客户端:SmtpClient类用于发送电子邮件。此类的实例是使用指定的主机和用户凭据创建的。
  5. 发送消息:最后,使用 MailMessage 对象作为参数调用 SmtpClient 对象的Send方法来发送电子邮件。
// Create the message
MailMessage msg = new MailMessage();
msg.From = "sender@sender.com";
msg.To = "receiver@receiver.com";
msg.Subject = "the subject of the message";

// Set delivery notifications for success and failed messages and Add the MIME headers
msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.OnFailure;
msg.Headers.Add("Read-Receipt-To", "sender@sender.com");
msg.Headers.Add("Disposition-Notification-To", "sender@sender.com");

// Send the message
SmtpClient client = new SmtpClient("host", "username", "password");
client.Send(msg);
处理电子邮件退回

除了确保成功发送电子邮件之外,您还可以利用该库的功能来处理退回邮件。下面的代码示例演示了如何加载和检查退回电子邮件的状态。它检索并显示有关退回电子邮件的重要信息,例如原始邮件中的文件名、退回状态、操作、收件人、原因、状态和收件人的电子邮件地址。该代码执行以下步骤:

  1. 该代码首先创建MailMessage类的实例,以使用Load方法从指定文件加载电子邮件。
  2. 然后,它通过调用CheckBounced方法检查电子邮件是否已被退回。此操作的结果存储在 BounceResult 对象中。
  3. 然后,代码继续将文件名打印到控制台,通过以下属性提供有关消息的详细信息:
  4. result.IsBounced属性表示电子邮件是否已被退回。
  5. result.Action属性包含与弹跳相关的操作。
  6. result.Recipient属性指示退回电子邮件的收件人。
  7. result.Reason属性提供电子邮件退回的原因。
  8. result.Status属性代表退回的状态。
  9. result.OriginalMessage.To[0].Address属性包含原始邮件中收件人的电子邮件地址。
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();
结论

在本文中,我们提请您注意电子邮件退回和送达通知的重要性。我们还提供了代码示例支持的处理方法。现在,您可以使用强大的工具来成功发送电子邮件并管理可能发生的任何退回邮件。通过将这些实践合并到您的项目中,您可以在 C# .NET 环境中实现有效的电子邮件通信,并确保您的消息到达其预期收件人。

文章来源:https://blog.csdn.net/m0_67129275/article/details/135595793
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。