3

MailKit を使用してメール管理システムを作成しています。

配達を追跡する必要がありますが、見つけることができるのは のみですが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

正しい方向に私を導く??

4

1 に答える 1

4

必要なことは、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;
    }
}
于 2015-05-29T11:13:34.990 に答える