C#邮件包交付状态通知
我正在使用MailKit创建一个电子邮件管理系统 我需要跟踪交付,但我只能找到C#邮件包交付状态通知,c#,notifications,mailkit,C#,Notifications,Mailkit,我正在使用MailKit创建一个电子邮件管理系统 我需要跟踪交付,但我只能找到DeliveryStatusNotification enum,但无处应用它 到目前为止,我得到的是: var message = new MimeMessage(); DeliveryStatusNotification delivery = DeliveryStatusNotification.Delay | DeliveryStatusNotification.Failure | DeliveryS
DeliveryStatusNotification enum
,但无处应用它
到目前为止,我得到的是:
var message = new MimeMessage();
DeliveryStatusNotification delivery =
DeliveryStatusNotification.Delay |
DeliveryStatusNotification.Failure |
DeliveryStatusNotification.Never |
DeliveryStatusNotification.Success;
message.Headers.Add(new Header(HeaderId.ReturnReceiptTo, "test@example.com")); // Delivery report
指导我正确的方向???您需要做的是子类SmtpClient并重写GetDeliveryStatusNotifications方法:
class DSNSmtpClient : SmtpClient
{
protected override DeliveryStatusNotification? GetDeliveryStatusNotifications (MimeMessage message, MailboxAddress mailbox)
{
if (/* some criteria for deciding whether to get DSN's... */)
return DeliveryStatusNotification.Delay |
DeliveryStatusNotification.Failure |
DeliveryStatusNotification.Success;
return null;
}
}
对于pop3,如何从Message对象知道传递失败的邮件通知?有什么样的地方我可以看看吗?哦,那是收据。状态通知非常类似,只是它是MessageDeliveryStatus,而不是MessageDispositionNotification.Yikes!为什么设计决定要强迫用户这样子类化它?否则你会怎么做?您将设计什么样的API?也许添加一些可以在消息上设置的属性而不是使用子类会更好