PHP Problem mit HTML Mails über qmail oder postfix

Expand / Collapse
 

PHP Problem mit HTML Mails über qmail oder postfix


Frage:
Ich habe ein PHP Script, welches eine HTML Mail über mail() verschicken soll. Beim Empfänger kommt aber eine Text Mail an und Content-Type und der ganze HTML-Code stehen im Mailtext.

Beispiel:

// Mail mit HTML:
$headers = "From: [email protected]\r\nReply-to:
[email protected]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$body = "<html>
<body>

<h1>HTML-Mail</h1>

Test <strong>HTML</strong>

</body>
</html>";

...

Antwort:
Unsere lieben PHP Pfuscher Entwickler schreiben freundlicherweise in ihre Doku, dass man für Mailheader \r\n verwenden soll, allerdings beherrscht das nur sendmail und alle anderen MTA wie qmail oder postfix erwarten eben ein einfaches \n .

Lösung 1:
Korrigiert Eure PHP-Scripten und ersetzt \r\n durch \n .

Lösung 2:
Setzt alternativ fertige PHP-Klassen wie
phpmailer ein.

Lösung 3:
Als Provider kann man Lösung 1 und 2 vergessen - kein Kunde ändert seine PHP Skripten. Eine Möglichkeit besteht darin, mittels Linux Pipe die von PHP übergebene Mail zuerst proforma vom Unix-Format nach DOS und dann eben von DOS zurück nach Unix umzuwandeln. Dabei korrigiert man in jedem Fall \r\n nach \n . Benötigt werden dazu die Linux Befehle unix2dos und dos2unix , welche natürlich standardmäßig nicht vorhanden sind. Also muss man diese erst installieren und zum Abschluss die php.ini anpassen, damit diese auch verwendet werden:

CentOS / Redhat:
yum install unix2dos dos2unix -y

Debian (nicht geprüft):
apt-get install unix2dos dos2unix

nano /etc/php.ini
sendmail_path = "unix2dos|dos2unix|sendmail -t -i"
bzw. für Plesk
sendmail_path = "unix2dos|dos2unix|/usr/lib64/plesk-9.0/qmail-sendmail-wrapper -t -i"

Apache danach einmal neustarten!
CentOS:
/etc/init.d/httpd restart

Debian:
/etc/init.d/apache2 restart


     
Tags:



Details
Zuletzt geändert:Montag, 17. August 2015
Zuletzt geändert von: i.fritz
Typ: BUG
Stufe: Expert
Rated 4 stars based on 3 votes.
Beitrag wurde 9.456* angeschaut.
Optionen