Что я пытаюсь сделать, так это настроить почтовый сервер почты с lamson (lamsonproject.org). Он работает очень хорошо, но у меня проблема с настройкой пути возврата, и по этой причине отскоки идут с адреса «От» и, следовательно, не доходят до моего почтового сервера.Отправка почты с помощью python - как установить Return-Path, который отличается от адреса «From»
Lamson использует питоны 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:<[email protected]> size=352\r\n'
reply: '250 Ok\r\n'
reply: retcode (250); Msg: Ok
send: u'rcpt TO:<[email protected]>\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: [email protected]\r\nSubject: Testing bounces\r\nSender: [email protected]\r\nReturn-Path: [email protected]\r\nReply-To: [email protected]\r\nMessage-Id: 377b8dcdf661810d3dc73a4a01fe23b3\r\nFrom: [email protected]\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
так что я могу видеть, что Return-Path действительно в заголовках.
В поисках ответа я нашел это: Setting Return-Path with Python sendmail for a MIME message
Последний комментарий в ответ: Ошибки/отскоков/и т.д.. должен перейти к отправителю конверта, а не по адресу From From :.
При поиске отправителя конверта и как указать, я наткнулся на этой вики статьи: http://en.wikipedia.org/wiki/Bounce_address
Это перечисляет еще возможные параметры заголовка, как: обратный путь, обратный путь, конверт из, отправителя конверта, MAIL FROM , 2821-FROM, обратный адрес, From_, Errors-to.
Я положил все это в заголовки писем и - Вуала. Это сработало.
Мой вопрос сейчас - Мне действительно нужно ВСЕГДА перечислить так много возможных вариантов пути возврата в почтовых заголовках? Настроить ли почтовые серверы один или два из этих параметров? Есть ли лучшие способы убедиться, что почта возвращается на мой почтовый сервер, когда он отскакивает?
Alan.
После этого длинного дня расследования этого, мой мозг несколько обжарен. Позвольте мне понять это, вы говорите мне, что вместо того, чтобы устанавливать эти заголовки, я должен использовать команду MAIL FROM при отправке почты. Но поскольку pythons smtplib используется для отправки почты, и поскольку этот lamson использует этот smtplib, я думаю, что я не могу повлиять, какие команды отправляются на сервер smtplib. В любом случае, без переписывания lamson. Это насколько я понимаю. Верный? –
В любом случае, команда MAIL FROM отправляется на сервер - вы можете увидеть ее в моей записи в журнале. aint, что та же самая команда, к которой вы обращаетесь. Вся моя проблема возникает из-за того, что адрес MAIL FROM должен отличаться от фактического адреса, на который должны отправляться письма. –
Да, это та же самая команда. Если вы передаете почту через функцию 'relay.deliver (message, to, from)' Lamson, просто измените значение 'to', так как это то, что заканчивается в команде' MAIL FROM'. – SimonJ