Zum Inhalt springen

Php mail() header und umlaute


Empfohlene Beiträge

Hi

ich habe nichts konkretes gefunden zu diesem Thema.

Ich muss in php ein kleines system programmieren das automatisch mails verschickt.

Im Body erscheint alles richtig encodet aber alle umlaute die in der betreff zeile also quasi im header sind werden als X oder ? dargestellt.

Wer kann mir sagen was ich tun muss das er diese sonderzeichen iso encoden tut?

So sieht meine funtktion bis jetzt aus:


$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "Content-Transfer-encoding: 8bit\r\n";
$headers .= "From: Me <me@example.de>\r\n";

mail($email, $message["subject"], $message["body"]."\n\r".$message["link"], $headers);
[/PHP]

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

sicher dass du die mails in UTF-8 verschicken willst?

zu deinem Problem siehe:

http://de.php.net/manual/en/function.htmlentities.php

also:


$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "Content-Transfer-encoding: 8bit\r\n";
$headers .= "From: Me <me@example.de>\r\n";

mail($email, htmlentities($message["subject"]), htmlentities($message["body"]."\r\n".$message["link"]), $headers);
[/PHP]

ausserdem muss es "\r\n" heissen, nicht "\n\r"!#

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Quoted-Printable benutzen. Geht via imap_8bit() wenn dein PHP mit IMAP Support gebaut ist.


<?
$From = "Jürgen Müstermän <jmusterman@example.com>";
$Subject = "Viele Umlaute: äöü und ein ß natürlich!";

$header = "MIME-Version: 1.0\r\n";
$header .= "From: =?ISO-8895-15?Q?".imap_8bit($From)."?=\r\n";
$header .= "Subject: =?ISO-8859-15?Q?".imap_8bit($Subject)."?=\r\n";

print $header;
?>
[/php]

[code] # php qp.php MIME-Version: 1.0 From: =?ISO-8895-15?Q?J=FCrgen M=FCsterm=E4n <jmusterman@example.com>?= Subject: =?ISO-8859-15?Q?Viele Umlaute: =E4=F6=FC und ein =DF nat=FCrlich!?= [/code]

Ungetestet, aber sollte so klappen. Normalerweise gehört die =?ISO...?Q? vor das erste Sonderzeichen. Schau dir einfach mal korrekte Mails mit Umlauten "roh" an.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Quoted-Printable benutzen. Geht via imap_8bit() wenn dein PHP mit IMAP Support gebaut ist.


<?
$From = "Jürgen Müstermän <jmusterman@example.com>";
$Subject = "Viele Umlaute: äöü und ein ß natürlich!";

$header = "MIME-Version: 1.0\r\n";
$header .= "From: =?ISO-8895-15?Q?".imap_8bit($From)."?=\r\n";
$header .= "Subject: =?ISO-8859-15?Q?".imap_8bit($Subject)."?=\r\n";

print $header;
?>
[/php]

Ungetestet, aber sollte so klappen.

Das functioniert auch.

leider will die mail() function von php den Subject extra angegeben bekommen.

Also kann man einen aufruf machen wie.

[PHP]mail("test@test.net", "=?ISO-8859-15?Q?".imap_8bit($Subject)."?=\r\n","$body,$headers);

Natürlich darf man in den header kein subject mehr drin haben weil die mail sonst 2 hatt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...