2012-09-16 8 views
18

È possibile modificare il valore Return-Path nelle e-mail che inviano tramite la funzione mail() di PHP?Modificare il percorso di ritorno nella funzione di posta PHP

Il valore è "[email protected]" nelle e-mail che invio al mio sito e causa alcuni problemi nella procedura di consegna non riuscita. Voglio impostarlo sul mio indirizzo email.

Ecco il codice che ho provato:

$headers = 'MIME-Version: 1.0' . "\n"; 
$headers .= "Content-type: text/html; charset=utf-8" . "\n"; 
$headers .= "Return-Path: <[email protected]>"."\n"; 
$headers .= "Errors-To: <[email protected]>"."\n"; 
// Additional headers 
$headers .= "To: [email protected] <[email protected]>" . "\n"; 
$headers .= "From: [email protected] <[email protected]>"; 
// Mail it 
mail('[email protected]', 'test', 'salam', $headers, "f"); 

risposta

31

È possibile impostare la risposta a & percorso di ritorno in intestazioni, come di seguito

$headers = 'From: [email protected]' . "\r\n" . 
'Reply-To: [email protected]' . "\r\n" . 
'Return-Path: [email protected]' 

O come quinto parametro per regolare il percorso di ritorno

mail($to, $subject, $message, $headers, "-f [email protected]"); 

dove [email protected] deve essere sostituito gestito dalla tua posta.

+0

Provo questo, ma il percorso di ritorno non cambia. Controllo l'intestazione completa di ricevere la posta ed è sempre lo stesso. –

+4

Provare a posizionare spazio dopo -f e controllare. "-f [email protected]" – GBD

+4

Penso che '\ r \ n' debba essere tra virgolette, non singole. –

4

La questione è formato di posta richiede intestazioni di utilizzare \r\n fine riga ... non \n, il trucco è che con alcuni server accetteranno sia (li convertono per voi e sembra funzionare magicamente), mentre altri prenderanno in considerazione quelli senza Le estensioni \r\n non sono valide e sostanzialmente ignorano tutte le intestazioni. In modo da provare, invece:

$headers = "MIME-Version: 1.0\r\n". 
    "Content-type: text/html; charset=utf-8\r\n". 
    "Return-Path: [email protected]"; 
mail ("[email protected]","test","salam",$headers); 

A proposito, Return-Path si aspetta una cassetta postale RFC1123 (senza le parentesi angolari, solo l'indirizzo di posta elettronica) ... non so perché ci si vuole impostare Return-Path come in il tuo esempio poiché è lo stesso dell'indirizzo da (quindi superfluo)

+0

Questo mi ha salvato la giornata. Il mio percorso di ritorno veniva ignorato e tornava di default a www-data .. cambiato da '\ n' a' \ r \ n' e funziona come previsto. – billynoah

+3

-1 Perché questo non risponde alla domanda e fornisce codice non funzionante. Hai un '' f "' casuale come ultimo parametro per 'mail()'. C'è un flag '-f'. L'inserimento di 'f' è un errore. –

Problemi correlati