Отправка почты с Python - как установить путь возврата, который отличается от адреса 'from "

StackOverflow https://stackoverflow.com/questions/4177496

Вопрос

То, что я пытаюсь сделать, это настроить почтовый сервер Smail с Lamson (LamsonProject.org). Его работает очень хорошо, но у меня есть проблемы с настройкой пути возврата, и по этой причине подпрыгиваются на «от» адреса и поэтому не достигают моего почтового сервера.

Ламсон использует Pythons Smtplib для отправки рассылки.

«Разговор» между моим проектом и моим SMTP-сервером идет так:

send: 'ehlo xxx.mydomiain.com\r\n'
reply: '250-smtp.smtpserver.com\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-SIZE 20000000\r\n'
reply: '250-VRFY\r\n'
reply: '250-ETRN\r\n'
reply: '250-STARTTLS\r\n'
reply: '250-XVERP\r\n'
reply: '250 8BITMIME\r\n'
reply: retcode (250); Msg: smtp.smtpserver.com
PIPELINING
SIZE 20000000
VRFY
ETRN
STARTTLS
XVERP
8BITMIME
send: u'mail FROM:<me@myotherdomain.com> size=352\r\n'
reply: '250 Ok\r\n'
reply: retcode (250); Msg: Ok
send: u'rcpt TO:<pleasebouncethis@myotherdomain.com>\r\n'
reply: '250 Ok\r\n'
reply: retcode (250); Msg: Ok
send: 'data\r\n'
reply: '354 End data with <CR><LF>.<CR><LF>\r\n'
reply: retcode (354); Msg: End data with <CR><LF>.<CR><LF>
data: (354, 'End data with <CR><LF>.<CR><LF>')
send: 'MIME-Version: 1.0\r\nTo: pleasebouncethis@myotherdomain.com\r\nSubject: Testing bounces\r\nSender: MAILER-DAEMON@mydomiain.com\r\nReturn-Path: MAILER-DAEMON@mydomain.com\r\nReply-To: MAILER-DAEMON@mydomain.com\r\nMessage-Id: 377b8dcdf661810d3dc73a4a01fe23b3\r\nFrom: me@myotherdomain.com\r\nContent-Type: text/plain; charset="utf-8"\r\nContent-Transfer-Encoding: base64\r\n\r\nc2RmZ2TDpGfDpGRsZsOkZ2xkZmc=\r\n.\r\n'
reply: '250 Ok: queued as E635D157D3\r\n'
reply: retcode (250); Msg: Ok: queued as E635D157D3
data: (250, 'Ok: queued as E635D157D3')
send: 'quit\r\n'
reply: '221 Bye\r\n'
reply: retcode (221); Msg: Bye
Done

Поэтому я вижу, что возвратный путь действительно в заголовках.

В поисках ответа я нашел это:Настройка пути возврата с Python SendMail для сообщения MIME

Последний комментарий в ответ: ошибки / отзывы / и т. Д. Должен пойти на конверт отправителя, а не адрес от:.

При взгляде на конверт отправителя и как указать, я столкнулся с этой статьей Wiki:http://en.wikipedia.org/wiki/bince_address.

Это перечисляет еще один возможный параметры заголовка, такие как: путь возврата, обратный путь, конверт из, конверт отправителя, почта от, 2821 - от, обратный адрес, из_, ошибки-к.

Я положил все в почтовые заголовки и - вуаля - это сработало.

Мой вопрос сейчас - мне действительно нужно всегда перечислить так много возможных вариантов для возврата пути в заголовки почты? Попросите почтовые серверы были настроены, чтобы принять один или два из этих параметров сейчас? Есть ли лучшие способы, чтобы убедиться, что почта возвращается на мой почтовый сервер, когда он отскакивает?

Алан.

Это было полезно?

Решение

Если ты отправка почта, тогда вам не нужно устанавливать какие-либо из тех заголовков; правильное место для отправителя конверта находится в MAIL FROM: Команда, так в вашем случае:

Почта от:u003CMAILER-DAEMON@mydomain.com>

Поскольку эта команда является частью протокола SMTP, а не сам сообщение, получатель Почтовый сервер добавляет заголовок возврата на пользу фильтров или другой обработки ниже по потоку, где оригинальный SMTP-конверт недоступен. Видеть RFC2821.:

Когда SMTP-сервер доставки делает «окончательную доставку» сообщения, он вставляет строку возврата в начале почтовых данных. Это использование возврата требуется; Почтовые системы должны поддерживать его. Линия возврата консервирует информацию вu003Creverse-path> из почтовой команды.

Другие советы

То from_addr Вы используете в sendmail(from_addr, to_addrs, msg, mail_options=[], rcpt_options=[]) Функция будет той тем, кто получит набор как Return-Path.

То msg Вы отправляете с функцией могут содержать другое From: Заголовок, это нормальное от адреса, люди увидят, когда они открывают электронное письмо.

Вы можете увидеть это в Документация SMTPLIBОтказ Цитируя записку там:

Параметры from_addr и to_addrs используются для построения конверта сообщения, используемого транспортными агентами. SENDMAIL не изменяет заголовки сообщения в любом случае.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top