Ce que j'essaie de faire est de configurer smail mail server avec lamson (lamsonproject.org). Cela fonctionne très bien, mais j'ai un problème avec le réglage du chemin de retour et pour cette raison, les rebonds vont à l'adresse 'De' et donc n'atteignent pas mon serveur de messagerie.Envoi de courrier avec python - comment définir Return-Path différent de l'adresse 'From'
Lamson utilise python smtplib pour envoyer des messages.
Le « parler » entre mon projet et mon serveur smtp va comme ça:
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
que je puisse voir, que le Return-Path est bien en-têtes.
Alors que la recherche d'une réponse que je trouve ceci: Setting Return-Path with Python sendmail for a MIME message
Dernier commentaire dans la réponse est: erreurs/rebonds/etc. devrait aller à l'expéditeur d'enveloppe, pas l'adresse dans De:.
lors de la recherche expéditeur enveloppe et comment spécifier, je suis tombé sur cet article wiki: http://en.wikipedia.org/wiki/Bounce_address
Cette liste autres paramètres d'en-tête possibles comme: chemin de retour, chemin inverse, enveloppe de, expéditeur de l'enveloppe, MAIL FROM , 2821-FROM, adresse de retour, From_, Errors-to.
J'ai mis tous ceux dans les en-têtes de courrier et - Voila - Cela a fonctionné.
Ma question est maintenant - Dois-je vraiment TOUJOURS lister autant d'options possibles pour le chemin de retour dans les en-têtes de courrier? Les serveurs de messagerie ont-ils été configurés pour accepter un ou deux de ces paramètres maintenant? Y a-t-il de meilleurs moyens de s'assurer que ce courrier est renvoyé à mon serveur de messagerie, quand il rebondit?
Alan.
Après cette longue journée d'enquête, mon cerveau est un peu frit. Laissez-moi comprendre: vous me dites qu'au lieu de définir ces en-têtes, je devrais utiliser la commande MAIL FROM lors de l'envoi du courrier. Mais puisque pythons smtplib est utilisé pour envoyer des messages, et puisque ce fichier utilise ce smtplib, je pense que je ne peux pas affecter, quelles commandes sont envoyées au serveur par smtplib. Sans réécrire lamson, de toute façon. C'est pour autant que je comprends. Correct? –
Quoi qu'il en soit, la commande MAIL FROM est envoyée au serveur - vous pouvez le voir dans ma transcription. ce n'est pas la même commande que celle à laquelle vous faites référence. Tout mon problème vient de cette adresse MAIL FROM doit être différente de l'adresse réelle où les mails devraient aller. –
Oui, c'est la même commande. Si vous relayez le mail via la fonction 'relay.deliver (message, to, from) de Lamson, changez simplement la valeur de' to', puisque c'est ce qui finit dans la commande 'MAIL FROM'. – SimonJ