2012-04-13 307 views
2

我正在寫一個服務器,將代表我的客戶發送電子郵件給許多收件人。發送電子郵件與自定義信封發件人(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庫可用?

回答

0

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?