Envoi du courrier avec python - comment définir Return-Path qui est différent de « From » adresse

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

Question

Qu'est-ce que Im essayant de faire est de configurer le serveur de messagerie avec Smail Lamson (lamsonproject.org). Son travail très bien, mais j'ai un problème de configuration de chemin de retour et pour cette raison, les rebonds vont « De » adresse et donc ne pas atteindre mon serveur de messagerie.

Lamson utilise pythons smtplib pour envoyer des mails sur.

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:<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

donc je peux voir, que le Return-Path est bien en-têtes.

Alors que la recherche d'une réponse que je trouve ceci: Réglage Return-Path avec Python sendmail pour un message MIME

Dernier commentaire dans la réponse est: Erreurs / rebonds / etc. devrait aller à l'expéditeur d'enveloppe, et non l'adresse De:.

Lorsque regardant l'expéditeur enveloppe et comment spécifier, je suis tombé sur cet article wiki: http://en.wikipedia.org/wiki/Bounce_address

Cette liste autre paramètres d'en-tête possibles comme: trajet de retour, le chemin inverse, à partir de l'enveloppe, l'expéditeur de l'enveloppe, MAIL FROM 2821-DE, adresse de retour, From_, les erreurs à.

Je mets tous les en-têtes de courrier et - Voila - Il a travaillé

.

Ma question est maintenant - Dois-je vraiment à la liste toujours tellement d'options possibles pour le chemin de retour des en-têtes de courrier? Demandez aux serveurs de messagerie configurés pour accepter un ou deux de ces paramètres maintenant? Y at-il de meilleures façons de vous assurer que le courrier est retourné à mon serveur de messagerie, quand il rebondit?

Alan.

Était-ce utile?

La solution

Si vous êtes envoyer mail vous n'avez pas besoin de mettre l'un de ces en-têtes; le bon endroit pour l'expéditeur de l'enveloppe est dans la commande MAIL FROM:, donc dans votre cas:

MAIL FROM:<MAILER-DAEMON@mydomain.com>

Étant donné que cette commande fait partie du protocole SMTP plutôt que le message lui-même, le destinataire serveur de messagerie ajoute un en-tête Return-Path au profit des filtres ou tout autre traitement en aval, où l'enveloppe SMTP d'origine est indisponible. Voir RFC2821 :

  

Lorsque le serveur SMTP de livraison fait la « livraison finale » d'un   message, il insère une ligne de chemin de retour au début du courrier   Les données. Cette utilisation du chemin de retour est nécessaire; systèmes de messagerie DOIVENT prendre en charge   il. La ligne de chemin de retour conserve les informations contenues dans le    à partir de la commande MAIL.

Autres conseils

Le from_addr que vous utilisez dans la fonction sendmail(from_addr, to_addrs, msg, mail_options=[], rcpt_options=[]) sera celui celui que l'ensemble de get comme Return-Path.

Le msg vous envoyez avec la fonction peut contenir un en-tête de From: différent qui est la normale des gens d'adresses verront quand ils ouvrent l'e-mail.

Vous pouvez le voir dans la smtplib documentation . Citant la note là:

  

Les paramètres de from_addr et to_addrs sont utilisés pour construire l'enveloppe du message utilisé par les agents de transport. sendmail ne modifie pas les en-têtes de messages de quelque façon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top