2009-06-22 6 views
1

Ich bin mit PHP, E-Mail-Funktion:Warum kehrt es nicht zu meinem Rückweg zurück?

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From: [email protected]' . "\r\n"; 
$headers .= 'Reply-To: Admin <[email protected]>' . "\r\n"; 

// Return Path - 
$return_path = "[email protected]"; 

$toUser... (all necessary variables) 

if(mail($toUser,$subject,$body,$headers, "-f".$return_path)){ 
    echo "res=sent"; 
} else { 
    echo "res=error"; 
    } 

ich einige E-Mails wie, [email protected], [email protected]

E-Mail-Adressen getestet

(etc, alle ungültig, nicht existent)

Warum es nicht zu meinem [email protected] gehen ????

Antwort

0

Sie müssen nach -f ein Leerzeichen hinzufügen. Warum nicht UTF-8 anstelle von iso-8859-1 verwenden? Versuchen Sie Folgendes:

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; 
$headers .= 'From: [email protected]' . "\r\n"; 
$headers .= 'Reply-To: Admin <[email protected]>' . "\r\n"; 

// Return Path 
$return_path = '[email protected]'; 

/* 
$toUser... (all necessary variables) 
*/ 

if(mail($toUser, $subject, $body, $headers, '-f ' . $return_path)) { 
echo 'res=sent'; 
} else { 
echo 'res=error'; 
} 
+0

i Leerzeichen nach "-f" hinzugefügt und Zeichensatz in UTF-8 geändert, funktioniert aber immer noch nicht. Ich meine, meine [email protected] erhielt immer noch keine Bounce-E-Mail. Hast du noch andere Ideen? –

+0

können Sie mehr Lösung bieten? Ich habe keine Ideen mehr .. Lesen Sie meinen Code ein paar Mal ... Es wird einfach nicht zurückprallen ... –

+0

Sie brauchen den Platz nicht. Das PHP-Handbuch hat keinen Platz und wenn Sie sich die Dokumentation für Sendmail anschauen, benötigt der Parameter kein Leerzeichen. Ich habe es auch ohne Platz getestet und es hat funktioniert. –

0

Es kann durch die Konfiguration Ihres sendmail verursacht werden. Der Parameter -F wird als Befehlszeilenattribut übergeben, daher muss sendmail konfiguriert werden, um es zu unterstützen.

Von php.net:

Die additional___parameters Parameter kann verwendet werden, um zusätzliche Flags zu passieren als Befehlszeilenoptionen, um das Programm konfiguriert verwendet werden, wenn Mail zu senden, wie von der sendmail_path Konfigurationseinstellung definiert . Beispiel: Hier können Sie die Absenderadresse des Umschlags festlegen, wenn Sie sendmail mit der Option -f sendmail verwenden.

Edit: Ich habe gerade gesehen, dass Matthias Bynens' Antwort richtig ist, siehe this entry

1

Sie sollten auch in der Lage sein, den Return-Path setzen einen Header auf den meisten Servern mit:

$headers .= "Return-Path: [email protected]\r\n";