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

时间:2012-04-13 21:37:26

标签: c# smtp verp

我正在编写一个服务器,代表我的客户向许多收件人发送电子邮件。

电子邮件必须来自客户的电子邮件地址(client@example.org),但我想通过VERP自动处理退回。基本上,电子邮件From:标题为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库可用?

1 个答案:

答案 0 :(得分:0)

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

不幸的是,虽然您可以使用Sender属性使用MAIL FROM属性指定信封mailMessage.Sender信封发件人,但SmtpClient还会添加Sender: unique-email-id@domain.com标头。

使用此Sender标头,电子邮件客户端会显示unique-email-id@domain.com on behalf of John Doe <doe@domain.com>

的发送

我发现没有像样的开源Smtp库支持这一点 - 即使是Mono的SmtpClient也没有这个功能。一些支持VERP的图书馆:

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?