Отправка электронной почты с отправителем конверта (VERP)
Я пишу сервер, который будет отправлять электронную почту многим получателям от имени моего клиента.
Письмо должно быть получено с адреса электронной почты клиента (client@example.org), но я хочу автоматически обрабатывать возвраты через VERP. В основном, электронная почта From:
заголовок будет client@example.org, но отправитель конверта SMTP (MAIL FROM
) будет уникальным email-идентификатором@my-email-service.example.com.
Я уже построил многопоточный движок отправки, который использует встроенный System.Net.Mail.SmtpClient
на самом деле говорить SMTP с сервером MX получателя.
К несчастью, SmtpClient
не позволяет указать отправителя конверта - он просто использует From:
адрес.
Мне нужна альтернатива, которая позволяет мне указать SMTP MAIL FROM
, Предпочтительно, что-то, что занимает мало работы, чтобы зайти и заменить SmtpClient
,
Пока что все, на что я смотрел, - это целый комплект электронной почты (SMTP/POP3/IMAP/ кухонная раковина). Какие легковесные библиотеки SMTP доступны?
1 ответ
System.Net.Mail.SmtpClient
внутренне использует mailMessage.Sender ?? mailMessage.From
для конверта MAIL FROM
отправитель конверта.
К сожалению, пока вы можете использовать свойство Sender для указания конверта MAIL FROM
отправитель конверта с помощью mailMessage.Sender
SmtpClient также добавит Sender: unique-email-id@domain.com
заголовок.
С этим заголовком отправителя почтовый клиент затем показывает отправку от unique-email-id@domain.com on behalf of John Doe <doe@domain.com>
Я не нашел приличную библиотеку Smtp с открытым исходным кодом, поддерживающую это - даже SmopClient Моно не имеет этой функции. Некоторые библиотеки, поддерживающие VERP:
- MailKit / MimeKit http://www.mimekit.net/
- Afterlogic MailBee
- Limilabs mail.dll
- Email архитект EASendMail
PS: не стесняйтесь голосовать за запрос функции VERP: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3800792-smtpclient-should-allow-to-specify-the-envelope-se
связанный вопрос: Как я могу реализовать VERP (путь возврата конверта переменной) в.NET?