
• 处理电子邮件退回和投递通知的 C# .NET API
• 发送带有送达通知的电子邮件
• 处理电子邮件退件
发送电子邮件时,您想知道邮件是否已成功发送给收件人。同样重要的是检测和管理邮件退回的能力,邮件退回是指邮件无法送达。发生退信的原因有很多,包括电子邮件地址无效、邮箱已满或服务器问题。检测这些退回对于维护一个干净、最新的电子邮件列表,确保您的邮件能送达正确的人至关重要。在本文中,我们将探讨如何在 C# .NET 环境中有效处理电子邮件退件和送达通知。
处理电子邮件退回和投递通知的 C# .NET API
为了在 C# .NET 中有效管理电子邮件退件和投递通知,我们将使用 Aspose.Email 库,该库为电子邮件相关任务提供了一套全面的工具和功能。Aspose.Email for .NET。您可以通过下载或使用以下命令从 NuGet 安装获得其 DLL,从而利用 API 的潜力:
PM> Install-Package Aspose.Email
发送带有送达通知的电子邮件
下面的代码片段演示了如何使用 Aspose.Email 创建电子邮件信息并设置发送通知。这段代码允许您创建电子邮件信息、指定发件人和收件人地址,以及配置成功和失败的发送通知。此外,它还为邮件添加了 MIME 标头,以便进行更全面的跟踪。代码执行以下步骤:
1. 创建新邮件:代码首先创建一个新的 MailMessage 对象。MailMessage 是一个表示可发送的 eml 消息的类。
2. 设置发送通知:DeliveryNotificationOptions 设置为 OnSuccess 和 OnFailure。这意味着如果邮件成功投递或投递失败,发件人希望收到投递报告。
3. 为读取和处理通知添加 MIME 标头:邮件对象的 "标题 "用于在发件人电子邮件中添加 "读取-接收-收件人 "和 "处置-通知-收件人 "标题。这些标头要求在收件人收到和处理电子邮件时分别向发件人的电子邮件地址发送读取和处理通知。
4. 设置 SMTP 客户端:SmtpClient 类用于发送电子邮件。使用指定的主机和用户凭据创建该类的实例。
5. 发送信息:最后,调用 SmtpClient 对象的发送方法,将 MailMessage 对象作为参数来发送电子邮件。
// 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. 然后,代码会将文件名打印到控制台,并通过以下属性提供邮件的详细信息:
• result.IsBounced 属性表示邮件是否被退回。
• result.Action 属性包含与退信相关的操作。
• result.Recipient 属性表示被退回电子邮件的收件人。
• result.Reason 属性提供电子邮件被退回的原因。
• result.Status 属性表示退回邮件的状态。
• 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 环境中实现有效的电子邮件通信,并确保您的邮件能送达预定的收件人。
有关 Aspose.Email for .NET 的更多详细信息或其他功能,请参阅我们的文档。如果您有任何问题或遇到任何困难,请联系我们。
渝公网安备50010702505508