发送电子邮件与自定义信封发件人(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.SmtpClient
System.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?