2010-08-12 17 views
8

C'è un modo per cambiare il ritorno-percorso utilizzando PHPMailerCambiare il Return-percorso utilizzando PHPMailer

ho fatto quanto segue e non ha funzionato

$mail->AddCustomHeader('Return-path:[email protected]'); 

sto usando la seguente dichiarazione a invia mail

if(!$mail->Send()) { 
     echo "Mailer Error: " . $mail->ErrorInfo; 

    } else { 
     //Building the reporting email to report on all the mails send 
     echo "Message REPORT sent!\n"; 
    } 

Ricevo l'email ma il percorso di ritorno non cambia?

risposta

19

Quanto segue risolto il problema, ho regolato la proprietà mittente e ha funzionato per me. $mail->Sender = '[email protected]';

+0

Giusto, questo funziona. Ciò imposta internamente il percorso di ritorno. Grazie –

1

Il motivo più probabile per questo è che il server di posta che si sta inviando questa mail su applica uno specifico percorso di ritorno. Questo è spesso il caso per lo spazio web "ospitato".

In tal caso, non si dispone di molte opzioni. Prova a parlare con il tuo hoster.

-2

Invece di usare l'intestazione Reply-percorso, provate questo:

$mail->AddCustomHeader('Reply-to:[email protected]'); 

utilizzare Reply-To e hanno avuto un grande successo anche in spazi condivisi.

+0

Ti ho frainteso? Vuoi cambiare il percorso verso il quale vengono inviati i messaggi e gli avvisi non riusciti o vuoi cambiare l'indirizzo in base al quale le persone rispondono? – SimonDowdles

+0

@webfac, se la posta non viene recapitata l'e-mail rimbalza, ho bisogno di sapere a quale indirizzo si rimbalza e l'unica cosa che penso rimbalzi è il percorso di risposta – Roland

+0

@Roland - È corretto sì, ho frainteso voi per un momento. Non vedo alcun motivo per cui il percorso di risposta non funzioni, A MENO CHE questa intestazione sia posizionata PRIMA del tuo standard A, Dalle intestazioni etc ?? Se così fosse, potrebbe essere la risposta. – SimonDowdles

5

il modo corretto di impostare ReturnPath (a partire da luglio 2013) è quello di utilizzare:

$mail->ReturnPath='[email protected]'; 

la fonte phpmailer contiene la seguente, che è il motivo per cui credo che $ mail-> Sender lavorato

if ($this->ReturnPath) { 
    $result .= $this->HeaderLine('Return-Path', '<'.trim($this->ReturnPath).'>'); 
} elseif ($this->Sender == '') { 
    $result .= $this->HeaderLine('Return-Path', '<'.trim($this->From).'>'); 
} else { 
    $result .= $this->HeaderLine('Return-Path', '<'.trim($this->Sender).'>'); 
} 
+0

Questo dovrebbe essere contrassegnato come la risposta corretta invece. – cytsunny

+0

Questo non è più il caso, come phpmailer espande nel suo codice: /** * Il percorso di ritorno del messaggio. * Se vuoto, sarà impostato su Da o sul mittente. * var stringa * I mittenti di posta elettronica deprecati non dovrebbero mai impostare un'intestazione del percorso di ritorno; * è il lavoro del destinatario (sezione 4.4 della RFC5321), quindi non fa più nulla. * link https://tools.ietf.org/html/rfc5321#section-4.4 riferimento RFC5321 * / –