2012-04-11 15 views
4

Ich habe ein Problem mit PHP zum Senden von E-Mails. Die E-Mail wird von Outlook ordnungsgemäß empfangen, zeigt jedoch nicht die Absenderadresse in der E-Mail an.php Mail funktioniert nicht einwandfrei mit Outlook

$subject = $_POST['message_subject']; 
$message = $_POST['speaker_description']; 
$email = $_POST['email']; 
$option = $_POST['sel_reg_options']; 
$email = substr_replace($email ,"",-1); 

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$headers .= "From:My Name<[email protected]>\r\n"; 
$headers .= "Reply-To: Registration of Interest<[email protected]>\r\n";   
$headers .= "MIME-Version: 1.0"."\r\n"; 
$mail_sent = @mail($email,$subject,$message,$headers); 
+0

Haben Sie versucht, ein Leerzeichen hinter dem ':' zu hinterlassen? – deceze

+0

Platz nach ':' verpasst –

+0

ja versucht ein Leerzeichen, aber immer noch nichts ist nützlich Ich habe google es so viel jetzt ich bin krank damit – buttjee

Antwort

2

Sie sollten die Namen in doppelten Anführungszeichen ein (dies gilt auch für den Reply-To Namen Adresse):

$headers .= "From: \"My Name\" <[email protected]>\r\n"; 


Auch wenn auf Unix PHP ausgeführt wird, die zu dem FROM-Umschlag hinzufügen $additional_parameters Parameter:

$mail_sent = @mail($email,$subject,$message,$headers,'-f [email protected]'); 


im Gegenteil, wenn unter Windows ausgeführt wird, die sendmail_from INI-Richtlinie festgelegt entweder i n php.ini oder unter Verwendung von:

ini_set('sendmail_from', '[email protected]'); 


Quellen:RFC2822, php.net user comment, IBM sendmail command reference

+0

keine Jungs ist immer noch das gleiche in Google Mail die Nachricht zeigt perfekt, aber Outlook zeigt nicht senden Adresse – buttjee

+0

Können Sie mir sagen, auf welchem ​​Server (Apache, IIS) und welchem ​​Betriebssystem Sie PHP verwenden? – MrFusion

+0

Könnten Sie auch versuchen, Ihre Header in dieser Reihenfolge zu platzieren? (Von, MIME, Inhalt, Reply-to). Überprüfen Sie abschließend, ob der erste '$ header'-Aufruf keine Daten anfügt (d. H.' = 'Anstelle von'. = '). Wäre nett, die '@' beim Aufruf von 'mail()' zu entfernen, um mögliche Fehler/Warnungen zu sehen. – MrFusion

0

Ich habe vor kurzem meine E-Mail-Skripte PHPMailer geschaltet. Es hat das Erstellen und Senden von E-Mails viel einfacher gemacht. Ich mache mir keine Sorgen mehr über falsche Header und die Feinheiten von PHP und E-Mail. Ich hatte keine Probleme beim Formatieren von E-Mails, so dass sie auch in den verschiedenen E-Mail-Clients korrekt empfangen werden.

Verwandte Themen