web-dev-qa-db-fra.com

Quelle est la différence de comportement entre return-path, reply-to et from?

Sur notre application de mailing, nous envoyons des emails avec l'en-tête suivant:

FROM: [email protected]
TO: [email protected]
Return-PATH: [email protected]

Le problème auquel nous sommes confrontés est que certains serveurs de messagerie renvoient immédiatement un message et utilisent le chemin from ou reverse ([email protected]) à la place de notre serveur de gestion des rebonds. Nous voulons savoir si nous modifions dans l'en-tête le Reply-to pour qu'il soit identique au return-path si nous pourrons capturer tous les rebonds.

Toutes les autres idées sont les bienvenues?

Nous utilisons les documents suivants comme références: VERPRFCmessages renvoyés

Analyse du journal SMTP pour obtenir des rebonds

EDIT 1: Quelques informations supplémentaires pour voir si nous pouvons obtenir cette résolution.

Nous voulons savoir à quel moment le serveur de messagerie relayant le message choisira d'utiliser la réponse à la réponse par rapport au chemin de retour. Nous avons remarqué que lorsque le premier serveur smtp relayant le message est rejeté, il l'envoie à la réponse, mais lorsqu'il le fait après un saut, il l'envoie au chemin de retour.

153
Geo

Commençons par un exemple simple. Supposons que vous ayez une liste d’emails qui enverra le contenu RFC2822 suivant.

From: <[email protected]>
To: <[email protected]>
Subject: Super simple email
Reply-To: <[email protected]>

This is a very simple body.

Supposons maintenant que vous l'envoyiez depuis une liste de diffusion implémentant VERP (ou un autre mécanisme de suivi des rebonds utilisant un chemin de retour différent). Disons qu'il aura un chemin de retour de [email protected]. La session SMTP pourrait ressembler à:

{S}220 workstation1 Microsoft ESMTP MAIL Service
{C}HELO workstation1
{S}250 workstation1 Hello [127.0.0.1]
{C}MAIL FROM:<[email protected]>
{S}250 2.1.0 [email protected] OK
{C}RCPT TO:<[email protected]>
{S}250 2.1.5 [email protected] 
{C}DATA
{S}354 Start mail input; end with <CRLF>.<CRLF>
{C}From: <[email protected]>
To: <[email protected]>
Subject: Super simple email
Reply-To: <[email protected]>

This is a very simple body.
.

{S}250 Queued mail for delivery
{C}QUIT
{S}221 Service closing transmission channel

Où {C} et {S} représentent respectivement les commandes client et serveur.

Le courrier du destinataire ressemblerait à ceci:

Return-Path: [email protected]
From: <[email protected]>
To: <[email protected]>
Subject: Super simple email
Reply-To: <[email protected]>

This is a very simple body.

Décrivons maintenant les différents "FROM".

  1. Le chemin de retour (parfois appelé chemin inverse, expéditeur de l'enveloppe ou enveloppe de - tous ces termes peuvent être utilisés de manière interchangeable) est la valeur utilisée dans la session SMTP dans la commande MAIL FROM. Comme vous pouvez le constater, il n'est pas nécessaire que cette valeur soit identique à celle trouvée dans les en-têtes de message. Seul le serveur de messagerie du destinataire est supposé ajouter un en-tête Return-Path en haut de l'e-mail. Cela enregistre l'expéditeur actuel du chemin de retour au cours de la session SMTP. Si un en-tête Return-Path existe déjà dans le message, cet en-tête est supprimé et remplacé par le serveur de messagerie du destinataire.

Tous les rebonds qui se produisent pendant la session SMTP doivent revenir à l'adresse du chemin de retour. Certains serveurs peuvent accepter tous les courriers électroniques, puis les mettre en file d'attente localement, jusqu'à ce qu'il dispose d'un fil libre pour les remettre à la boîte aux lettres du destinataire. Si le destinataire n'existe pas, il doit être renvoyé à la valeur de Return-Path enregistrée.

Notez que tous les serveurs de messagerie n'obéissent pas à cette règle. Certains serveurs de messagerie le renverront à l'adresse FROM.

  1. L'adresse FROM est la valeur trouvée dans l'en-tête FROM. Ceci est supposé être le destinataire du message. C'est ce que vous voyez comme le "FROM" dans la plupart des clients de messagerie. Si un e-mail ne comporte pas d’en-tête Répondre à, toutes les réponses humaines (client de messagerie) doivent revenir à l’adresse FROM.

  2. L'en-tête Répondre à est ajouté par l'expéditeur (ou le logiciel de l'expéditeur). C’est là que toutes les réponses humaines doivent également être traitées. Fondamentalement, lorsque l'utilisateur clique sur "répondre", la valeur Répondre à doit correspondre à la valeur utilisée en tant que destinataire du courrier électronique nouvellement composé. La valeur Répondre à ne doit être utilisée par aucun serveur. Il est destiné à une utilisation côté client (MUA) uniquement.

Cependant, comme vous pouvez le constater, tous les serveurs de messagerie ne respectent pas les normes ou recommandations RFC.

J'espère que cela devrait aider à clarifier les choses. Toutefois, si quelque chose me manque, faites-le moi savoir et j'essaierai de vous répondre.

247
dave wanta

Une autre façon de penser à Return-Path vs Reply-To consiste à le comparer au courrier postal.

Lorsque vous envoyez une enveloppe par courrier, vous spécifiez un adresse de retour. Si le destinataire n'existe pas ou refuse votre courrier, l'administrateur de la poste renvoie l'enveloppe à l'adresse de retour. Pour le courrier électronique, le adresse de retour est le Return-Path.

Une lettre peut être insérée à l’intérieur de l’enveloppe et à l’intérieur de celle-ci, elle peut indiquer au destinataire "Envoyer la correspondance à exemple d’adresse". Pour le courrier électronique, le exemple d'adresse est le Reply-To.

Essentiellement, une adresse de retour d'affranchissement est comparable à l'en-tête SMTP Return-Path et à l'en-tête SMTP Reply-To est similaire aux instructions de réponse contenues dans une lettre.

142
Jesse Hobart

pour ceux qui sont arrivés ici parce que le titre de la question:

J'utilise Reply-To: adresse avec les formulaires Web. lorsque quelqu'un remplit le formulaire, la page Web envoie un courrier électronique automatique au propriétaire de la page. le From: est l'adresse de l'expéditeur automatique du courrier, afin que le propriétaire sache que cela provient du formulaire Web. mais l'adresse Reply-To: est celle renseignée dans le formulaire par l'utilisateur. Le propriétaire peut donc appuyer sur répondre pour le contacter.

4
robotik

J'ai dû ajouter un en-tête Return-Path dans les emails envoyés par une instance de Redmine. Je suis d'accord avec greatwolf, seul l'expéditeur peut déterminer un chemin de retour correct (non défini par défaut). Le cas est le suivant: Les e-mails sont envoyés avec l'adresse e-mail par défaut: admin@votre_entreprise.com Mais nous souhaitons que le véritable utilisateur qui lance l'action reçoive les e-mails renvoyés, car c'est lui qui saura comment corriger les e-mails des destinataires erronés. (et pas les administrateurs d'applications qui ont d'autres chats à fouetter :-)). Nous l'utilisons et cela fonctionne parfaitement avec exim sur le serveur d'applications et zimbra en tant que serveur de messagerie final de l'entreprise.

1
Smile