我正在编写一个服务器,它将代表我的客户向许多收件人发送电子邮件。
电子邮件必须来自客户的电子邮件地址 (client@example.org),但我想通过 VERP 自动处理退回邮件.基本上,电子邮件 From: header 将为 client@example.org,但 SMTP 信封发件人 (MAIL FROM) 将为 unique-email-id@my-email-service.example.com.
我已经构建了一个多线程发送引擎,它使用内置的 System.Net.Mail.SmtpClient 与收件人的 MX 服务器实际对话 SMTP。
不幸的是,SmtpClient 不允许您指定信封发件人 - 它只使用 From: 地址。
我需要一个允许我指定 SMTP MAIL FROM 的替代方法。最好是一些不费吹灰之力就可以插入并替换 SmtpClient 的东西。
到目前为止,我看到的一切都是一个完整的 email suite (SMTP/POP3/IMAP/厨房水槽)。有哪些轻量级 SMTP 库可用?
请您参考如下方法:
System.Net.Mail.SmtpClient内部正在使用 mailMessage.Sender ?? mailMessage.From用于信封 MAIL FROM信封发件人。
不幸的是,虽然您可以使用 Sender 属性来指定信封 MAIL FROM使用 mailMessage.Sender 的信封发件人属性,SmtpClient 还将添加一个 Sender: unique-email-id@domain.com标题。
使用此发件人 header ,电子邮件客户端随后显示来自 unique-email-id@domain.com on behalf of John Doe <doe@domain.com> 的发送
我发现没有像样的开源 Smtp 库支持这个——甚至 Mono 的 SmtpClient 也缺少这个功能。一些支持 VERP 的库:
- MailKit/MimeKit http://www.mimekit.net/
- Afterlogic MailBee
- Limilabs mail.dll
- 电子邮件架构师 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?
