2016-07-20 2 views
2

Ich versuche, die Alter der Header in meiner E-Mail zu senden, um die Corporate E-Mail-Standard innerhalb meiner Herkunft entsprechen. Aber das beinhaltet, die Abteilung des Systems in geschweifte Klammern zu setzen.PHP Mail() Klammern in der von Header hinzufügen

Die E-Mail wird erfolgreich mit der Kopfzeile gesendet, ignoriert jedoch den Abteilungstext und die Klammern in der Kopfzeile.

- Gibt es eine Möglichkeit, diesen Header ausgeben zu können, ohne dass die Brackers ignoriert werden?

$emailBody = "content test"; 
$subject = 'subject test'; 
$message = "<html><body>".$emailBody."</body></html>"; 
$headers = 'From: System (department) <[email protected]>' . "\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 

$sendmail = mail('[email protected]',$subject,$message,$headers); 

Ausgang:

From: System 

gewünschte Ausgabe:

From: System (department) 
+1

Verwenden Sie nicht 'mail()'. es ist Micky-Maus-Müll. Verwenden Sie phpmailer oder swiftmailer, die es beide trivial machen, eine Mime-E-Mail mit einem beliebigen 'from' zu senden. –

+0

Ich habe Probleme beim Senden von E-Mails mit 'phpmailer'. Es scheint nicht möglich, den Mail-Server im cpanel oder einen Test-Gmail zu finden. Während die eingebaute 'mail()' sich perfekt verbindet. Was macht besonders "mail()' Müll? – Orbitall

+1

grobe Analogie: mail() ist eine Kugel, die Sie mit einem rostigen Nagel und einem Hammer feuern, während phpmailer/swiftmailer komplette Waffen sind. Es ist sehr einfach, mit Mail zu versauen und Sicherheitsprobleme (Header-Injektionen) oder erstellen Sie eine schlechte Pantomime-E-Mail. –

Antwort

0

Sie müssen für den Namen des Benutzers doppelte Anführungszeichen (") verwenden, wenn Sie Räume haben () vor <[email protected]>.

$headers = 'From: "System (department)" <[email protected]>' . "\r\n";

erste E-Mail ist der Code ohne doppelte Anführungszeichen und zweite meine ist, mit doppelten Anführungszeichen.