Qual è la differenza di comportamento tra return-path, reply-to e from?


162

Sulla nostra applicazione di posta stiamo inviando e-mail con la seguente intestazione:

FROM: marketing@customer.com
TO: subscriber1@domain1.com
Return-PATH: bouncemgmt@ourcompany.com

Il problema che stiamo affrontando è che alcuni server e-mail rispediranno immediatamente un messaggio e utilizzeranno il percorso from o reverse (marketing@customer.com) invece del nostro server mgmt di rimbalzo. Vogliamo sapere se modifichiamo nell'intestazione la risposta in modo che sia uguale al percorso di ritorno se saremo in grado di catturare tutti i rimbalzi.

Altre idee sono benvenute?

Stiamo usando i seguenti documenti come riferimenti: Messaggi di rimbalzo VERP RFC

Analisi del registro SMTP per ottenere rimbalzi

EDIT 1: Qualche informazione in più per vedere se possiamo ottenere questa risoluzione.

Vogliamo sapere a che punto il server di posta elettronica che inoltra il messaggio sceglierà di utilizzare la risposta rispetto al percorso di ritorno. Abbiamo notato che quando il primo server smtp che inoltra il messaggio viene rifiutato, lo invia alla risposta, ma quando succede dopo un hop lo invia al percorso di ritorno.


1
Che ne dici di specificare i campi Mittente: e Precedenza:? Mi piacerebbe sapere di più su come influenzano i diversi server di posta quando si tratta di rimbalzi e di autoreplies fuori dall'ufficio. Chiunque?
PapaFreud,

Risposte:


257

Cominciamo con un semplice esempio. Supponiamo che tu abbia una mailing list, che invierà il seguente contenuto RFC2822 .

From: <coolstuff@mymailinglist.com>
To: <you@yourcompany.com>
Subject: Super simple email
Reply-To: <coolstuff-threadId=123@mymailinglist.com>

This is a very simple body.

Ora, supponiamo che lo invierai da una mailing list, che implementa VERP (o qualche altro meccanismo di tracciamento del rimbalzo che utilizza un diverso percorso di ritorno). Diciamo che avrà un percorso di ritorno di coolstuff-you=yourcompany.com@mymailinglist.com. La sessione SMTP potrebbe apparire come:

{S}220 workstation1 Microsoft ESMTP MAIL Service
{C}HELO workstation1
{S}250 workstation1 Hello [127.0.0.1]
{C}MAIL FROM:<coolstuff-you=yourcompany.com@mymailinglist.com>
{S}250 2.1.0 me@mycompany.com....Sender OK
{C}RCPT TO:<you@yourcompany.com>
{S}250 2.1.5 you@yourcompany.com 
{C}DATA
{S}354 Start mail input; end with <CRLF>.<CRLF>
{C}From: <coolstuff@mymailinglist.com>
To: <you@yourcompany.com>
Subject: Super simple email
Reply-To: <coolstuff-threadId=123@mymailinglist.com>

This is a very simple body.
.

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

Dove {C} e {S} rappresentano rispettivamente i comandi Client e Server.

La posta del destinatario sarebbe simile a:

Return-Path: coolstuff-you=yourcompany.com@mymailinglist.com
From: <coolstuff@mymailinglist.com>
To: <you@yourcompany.com>
Subject: Super simple email
Reply-To: <coolstuff-threadId=123@mymailinglist.com>

This is a very simple body.

Ora, descriviamo i diversi "DA".

  1. Il percorso di ritorno (a volte chiamato percorso inverso, mittente busta o busta da - tutti questi termini possono essere usati in modo intercambiabile) è il valore utilizzato nella sessione SMTP nel MAIL FROMcomando. Come puoi vedere, questo non deve necessariamente avere lo stesso valore che si trova nelle intestazioni dei messaggi. Solo il server di posta del destinatario dovrebbe aggiungere un'intestazione Return-Path all'inizio dell'email. Ciò registra il mittente del percorso di ritorno effettivo durante la sessione SMTP. Se nel messaggio esiste già un'intestazione Return-Path, tale intestazione viene rimossa e sostituita dal server di posta del destinatario.

Tutti i rimbalzi che si verificano durante la sessione SMTP devono tornare all'indirizzo Return-Path. Alcuni server possono accettare tutta la posta elettronica, quindi accodarla localmente, fino a quando non ha un thread gratuito per recapitarla alla cassetta postale del destinatario. Se il destinatario non esiste, dovrebbe riportarlo al valore Return-Path registrato.

Nota, non tutti i server di posta obbediscono a questa regola; Alcuni server di posta lo rimandano indietro all'indirizzo DA.

  1. L'indirizzo FROM è il valore trovato nell'intestazione FROM. Questo dovrebbe essere da chi proviene il messaggio. Questo è ciò che vedi come "DA" nella maggior parte dei client di posta. Se un'e-mail non ha un'intestazione di risposta, tutte le risposte umane (client di posta) devono tornare all'indirizzo FROM.

  2. L'intestazione di risposta viene aggiunta dal mittente (o dal software del mittente). È qui che dovrebbero essere indirizzate anche tutte le risposte umane. Fondamentalmente, quando l'utente fa clic su "rispondi", il valore Rispondi a dovrebbe essere il valore utilizzato come destinatario dell'e-mail appena composta. Il valore di risposta non deve essere utilizzato da nessun server. È destinato esclusivamente al lato client (MUA).

Tuttavia, come puoi vedere, non tutti i server di posta rispettano gli standard o le raccomandazioni RFC.

Speriamo che questo possa aiutare a chiarire le cose. Tuttavia, se ho perso qualcosa, fammelo sapere e proverò a rispondere.


Questo è molto utile Grazie per il tuo tempo. Una domanda. Potrebbe accadere che alcuni rimbalzi stiano andando alla risposta anziché al percorso di ritorno?
Geo,

5
bene, tecnicamente puoi (ma non dovresti) aggiungere un'intestazione del percorso di ritorno, tuttavia, se esiste un'intestazione del percorso di ritorno, deve essere sovrascritta dal server smtp ricevente. Se non esiste nessuno, deve essere aggiunto nella parte superiore delle intestazioni.
dave wanta,

7
Non sono abbastanza chiaro su come return-pathvenga utilizzato. Se return-pathsi intende che sia un indirizzo di ritorno, perché il server di posta del destinatario dovrebbe compilare questo campo anziché il mittente? In che modo il server del destinatario saprebbe anche cosa inserire? Non sembra indietro?
greatwolf,

6
Il server di posta del destinatario inserisce l'intestazione Return-Path nel messaggio copiando il valore fornito dal server di posta del mittente nel comando "MAIL FROM" SMTP. Immagina un impiegato nella sala postale che apre la posta: guardano l'indirizzo di ritorno sulla busta e lo scrivono in cima alla lettera (e gettano via la busta).
John Hascall,

5
E come si Sender:inserisce l' intestazione in tutto questo?
Simon East,

150

Un altro modo di pensare a Return-Pathvs Reply-Toè confrontarlo con la posta ordinaria.

Quando si invia una busta nella posta, si specifica un indirizzo di ritorno . Se il destinatario non esiste o rifiuta la posta, il postmaster restituisce la busta all'indirizzo di ritorno. Per l'e-mail, l' indirizzo di ritorno è il Return-Path.

All'interno della busta potrebbe esserci una lettera e all'interno della lettera può indirizzare il destinatario a "Invia corrispondenza all'indirizzo di esempio ". Per l'e-mail, l' indirizzo di esempio è il Reply-To.

In sostanza, un indirizzo di restituzione dell'affrancatura è paragonabile all'intestazione di SMTP Return-Pathe l' Reply-Tointestazione di SMTP è simile alle istruzioni di risposta contenute in una lettera.


14
Questa è una bella analogia.
Lukasz Korzybski il

2
@Jesse Hobart +1 per una bella spiegazione, ero più confuso grazie per aver reso più semplice la comprensione di me.
Abhishek,

26
Vorrei sottolineare che il concetto principale non acquisito in questa analogia è che l' Return-Pathintestazione viene aggiunta dal server di posta ricevente e non dal mittente . Quindi è più simile a questo: puoi scrivere qualsiasi indirizzo desideri all'interno della busta, ma per consegnarlo devi portarlo all'ufficio postale e mostrare loro la tua patente di guida (o altro ID) e hanno messo quell'indirizzo sulla busta prima di inviarlo. In altre parole, l' Return-Pathintestazione è affidabile quanto i controlli eseguiti dal server SMTP ricevente, in cui gli altri possono essere facilmente falsificati.
cdhowie,

5

per coloro che sono arrivati ​​qui perché il titolo della domanda:

Uso l' Reply-To:indirizzo con i moduli web. quando qualcuno compila il modulo, la pagina web invia un'e-mail automatica al proprietario della pagina. l' From:è l'indirizzo del mittente mail automatica, così il proprietario sa che è dal modulo web. ma l' Reply-To:indirizzo è quello compilato nel modulo dall'utente, quindi il proprietario può semplicemente rispondere per contattarli.


1

Ho dovuto aggiungere un'intestazione Return-Path nelle e-mail inviate da un'istanza Redmine. Concordo con greatwolf solo il mittente può determinare un percorso di ritorno corretto (non predefinito). Il caso è il seguente: Le e-mail vengono inviate con l'indirizzo e-mail predefinito: admin@tuaazienda.com Ma vogliamo che l'utente reale che avvia l'azione riceva le email di rimbalzo, perché sarà lui a sapere come correggere le e-mail errate dei destinatari (e non gli amministratori dell'applicazione che hanno altri gatti da frustare :-)). Lo usiamo e funziona perfettamente con exim sul server delle applicazioni e zimbra come server di posta aziendale finale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.