发送电子邮件与自定义信封发件人(VERP)

问题描述:

我正在写一个服务器,将代表我的客户发送电子邮件给许多收件人。发送电子邮件与自定义信封发件人(VERP)

电子邮件必须来自客户的电子邮件地址([email protected]),但我想通过VERP自动处理反弹。基本上,电子邮件From:标题将为[email protected],但SMTP信封发件人(MAIL FROM)将为unique-email-id @ my-email-service.example.com。

我已经构建了一个多线程发送引擎,它使用内置的System.Net.Mail.SmtpClient实际上与收件人的MX服务器说SMTP。

不幸的是,SmtpClient不允许您指定信封发件人–它只是使用From:地址。

我需要一个替代方案,允许我指定SMTP MAIL FROM。优选地,需要花费很少的工作来替代SmtpClient

到目前为止,我看过的所有内容都是整个emailsuite(SMTP/POP3/IMAP/kitchen sink)。什么轻量级的SMTP库可用?

System.Net.Mail.SmtpClientSystem.Net.Mail.SmtpClient内部使用mailMessage.Sender ?? mailMessage.From为信封MAIL FROM信封发件人。

不幸的是,尽管您可以使用发件人属性指定信封MAIL FROM使用mailMessage.Sender属性的信封发件人,但SmtpClient还会添加Sender: [email protected]标头。

有了这个发件人标头,电子邮件客户端然后显示从[email protected] on behalf of John Doe <[email protected]>

的发送,我发现没有什么像样的开源库的smtp支持这一点 - 即使Mono的SmtpClient没有此功能。支持VERP一些商业库:

  • Afterlogic的MailBee
  • Limilabs mail.dll
  • Emailarchitect EASendMail

PS:随意选了VERP功能要求:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3800792-smtpclient-should-allow-to-specify-the-envelope-se

相关问题:How can I implement VERP (Variable envelope return path) in .NET?