Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

Danke für die schnelle antwort.

den Charset hatte ich testweise umgestellt, hab ihn aber jetzt umgestellt.

Leider bringt das htmlentities auch nichts da die ausgabe in der betreffzeile jetzt ungefähr so aussieht:

...Maßnahme wu...

Geschrieben

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.

Geschrieben
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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...