Отправка электронной почты с помощью настраиваемого отправителя конверта (VERP)

Я пишу сервер, который будет отправлять электронную почту многим получателям от имени моего клиента.

Электронное письмо должно поступать с адреса электронной почты клиента ([email protected]), но я хочу автоматически обрабатывать отказы через ВЕРП. Обычно заголовок электронной почты From: будет иметь вид [email protected], но отправитель конверта SMTP (MAIL FROM) будет unique-email-id @ my-email-service.example.com.

Я уже создал многопоточный механизм отправки, который использует встроенный System.Net.Mail.SmtpClient для фактического общения по SMTP с MX-сервером получателя.

К сожалению, SmtpClient не позволяет указать отправителя конверта, он просто использует адрес From:.

Мне нужна альтернатива, позволяющая указать MAIL FROM SMTP. Желательно что-то, что не требует больших усилий, чтобы заменить SmtpClient.

Пока что все, на что я смотрел, - это целое письмо набор (SMTP / POP3 / IMAP / кухонная мойка). Какие легкие библиотеки SMTP доступны?


person josh3736    schedule 13.04.2012    source источник


Ответы (1)


System.Net.Mail.SmtpClient внутренне использует mailMessage.Sender ?? mailMessage.From для конверта MAIL FROM отправителя конверта.

К сожалению, хотя вы можете использовать свойство Sender для указания отправителя конверта MAIL FROM с помощью свойства mailMessage.Sender, SmtpClient также добавит заголовок Sender: [email protected].

С этим заголовком отправителя почтовый клиент затем показывает отправку от [email protected] on behalf of John Doe <[email protected]>

Я не нашел достойной библиотеки Smtp с открытым исходным кодом, поддерживающей это - даже в SmtpClient от Mono эта функция отсутствует. Некоторые библиотеки, поддерживающие 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 < / а>

связанный вопрос: Как я могу реализовать VERP (переменная путь возврата конверта) в .NET?

person Martin Meixger    schedule 02.04.2013