L'invio di mail con il pitone - come impostare Return-Path che è diverso dal 'Da' indirizzo
-
09-10-2019 - |
Domanda
cosa im cercando di fare è configurare il server di posta smail con Lamson (lamsonproject.org). Il suo lavoro molto bene, ma ho problemi con l'impostazione percorso di ritorno e per questo motivo, i rimbalzi stanno per 'From' indirizzo e quindi non raggiungere il mio server di posta.
Lamson utilizza pitoni smtplib per inviare posta fuori.
Il "parlare" tra il mio progetto e il mio server smtp va così:
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
così posso vedere, che il Return-Path è infatti nelle intestazioni.
Mentre alla ricerca di una risposta ho trovato questo: Impostazione Return-Path con Python sendmail per un messaggio MIME
Ultimo commento nella risposta è: Errori / rimbalzi / etc. dovrebbe andare al mittente busta, non l'indirizzo nel From:.
Quando si cerca su Busta mittente e come specificare, mi sono imbattuto in questo articolo wiki: http://en.wikipedia.org/wiki/Bounce_address
Questo elenca altri possibili parametri di intestazione come: percorso di ritorno, percorso inverso, busta, busta mittente, MAIL FROM, 2821-DA, l'indirizzo di ritorno, From_, Errori-a.
ho messo tutti coloro che nelle intestazioni di posta e - Voila - Ha funzionato
.La mia domanda è ora - Devo veramente alla lista sempre così tante opzioni possibili per percorso di ritorno in intestazioni di posta? Sono stati i server di posta configurato per accettare uno o due di quei parametri, adesso? ci sono modi migliori per assicurarsi, che la posta viene restituito al mio server di posta, quando rimbalza?
Alan.
Soluzione
Se sei invio mail, quindi non è necessario impostare una di queste intestazioni; il posto giusto per il mittente della busta è nel comando MAIL FROM:
, così nel tuo caso:
MAIL FROM:<MAILER-DAEMON@mydomain.com>
Dal momento che questo comando è parte del protocollo SMTP, piuttosto che il messaggio stesso, il destinatario server di posta aggiunge un'intestazione Return-Path a beneficio di filtri o altre lavorazioni a valle, dove la busta SMTP originale è non disponibile. Vedere RFC2821 :
Quando il server SMTP di consegna rende la "consegna finale" di un messaggio, inserisce una linea di ritorno percorso all'inizio della posta dati. è richiesto Questo uso del percorso di ritorno; sistemi di posta DEVE sostegno esso. La linea di ritorno-path conserva le informazioni nel
dal comando MAIL.
Altri suggerimenti
Il from_addr
si utilizza nella funzione sendmail(from_addr, to_addrs, msg, mail_options=[], rcpt_options=[])
sarà quello quello che il set di get come Return-Path
.
Il msg
si invia con la funzione può contenere un'intestazione From:
diversa che è la normale dall'indirizzo gente vedrà quando aprono l'email.
È possibile vedere questo nel smtplib documentazione . Citando la nota c'è:
Il from_addr e to_addrs parametri vengono usati per costruire busta di messaggio utilizzato dagli agenti di trasporto. sendmail non modifica le intestazioni dei messaggi in alcun modo.