如何使用 MailKit 检查电子邮件是否已送达
How to check if an email was delivered using MailKit
我正在使用@jstedfast Mimekit/Mailkit 库从我的 API 发送电子邮件。我想知道如何获取每封电子邮件的发送状态。我尝试覆盖 DeliveryStatusNotification 以在成功时发送通知:
public class DSNSmtpClient : SmtpClient
{
public DSNSmtpClient()
{
}
protected override string GetEnvelopeId(MimeMessage message)
{
return message.MessageId;
}
protected override DeliveryStatusNotification? GetDeliveryStatusNotifications(MimeMessage message, MailboxAddress mailbox)
{
return DeliveryStatusNotification.Success;
}
}
我可以发送这样的电子邮件:
using (DSNSmtpClient dsnSmtpClient = new DSNSmtpClient())
{
dsnSmtpClient.Connect(_emailCredentials.Value.SmtpServer, _emailCredentials.Value.Port, true);
dsnSmtpClient.Authenticate(_emailCredentials.Value.UserName, _emailCredentials.Value.Password);
dsnSmtpClient.Send(mimeMessage);
dsnSmtpClient.Disconnect(true);
}
但我的发件人收件箱中没有收到任何有关递送状态(或任何内容)的电子邮件。
我找到了一些相关链接:
get the delivery status of email with mimekit/mailkit library
https://github.com/jstedfast/MailKit/issues/602
但他们只让我走到这一步。
我还需要做什么来查看电子邮件是否送达?
确保您的 SMTP 服务器支持 DSN 扩展。
var supportsDsn = client.Capabilities.HasFlag (SmtpCapabilities.Dsn);
我正在使用@jstedfast Mimekit/Mailkit 库从我的 API 发送电子邮件。我想知道如何获取每封电子邮件的发送状态。我尝试覆盖 DeliveryStatusNotification 以在成功时发送通知:
public class DSNSmtpClient : SmtpClient
{
public DSNSmtpClient()
{
}
protected override string GetEnvelopeId(MimeMessage message)
{
return message.MessageId;
}
protected override DeliveryStatusNotification? GetDeliveryStatusNotifications(MimeMessage message, MailboxAddress mailbox)
{
return DeliveryStatusNotification.Success;
}
}
我可以发送这样的电子邮件:
using (DSNSmtpClient dsnSmtpClient = new DSNSmtpClient())
{
dsnSmtpClient.Connect(_emailCredentials.Value.SmtpServer, _emailCredentials.Value.Port, true);
dsnSmtpClient.Authenticate(_emailCredentials.Value.UserName, _emailCredentials.Value.Password);
dsnSmtpClient.Send(mimeMessage);
dsnSmtpClient.Disconnect(true);
}
但我的发件人收件箱中没有收到任何有关递送状态(或任何内容)的电子邮件。
我找到了一些相关链接:
get the delivery status of email with mimekit/mailkit library
https://github.com/jstedfast/MailKit/issues/602
但他们只让我走到这一步。 我还需要做什么来查看电子邮件是否送达?
确保您的 SMTP 服务器支持 DSN 扩展。
var supportsDsn = client.Capabilities.HasFlag (SmtpCapabilities.Dsn);