mail () PHP-ben, UTF-8-mal és umlauts-kel

Az e-mailek küldése a PHP-vel a leghatékonyabb osztályokkal, mint például a PHPMailer . A kényelmes csomagoló funkciók lehetővé teszik az UTF-8 tartalmának néhány sornyi kóddal való használatát, a képek beágyazását és a mellékletek titkosított küldését. Ha el akarja menteni a felülírást, és az ajánlással ellentétben a PHP függvény mail () használatát használja, akkor legkésőbb az umlauts és az UTF-8 használatakor problémák merülnek fel.


Miután meghívta a funkciót a

mail(
   "vieldav@gmx.de",                          // Empfänger
   "ä ö ü ß",                                 // Betreff
   "ä ö ü ß",                                 // Inhalt
   "From: ä ö ü ß <david@vielhuber.de>"       // Header (Absender)
);

egy UTF-8 kódolt fájlban már problémákat okoz a beérkező levelek mappában: Az Outlook 2013 továbbra is kedves és mindent helyesen jelenít meg:

mail1

De a GMX már nem bocsátja meg a hiányzó fejléceket, és megmutatja egy sikertelen tárgyat, feladót és tartalmat:

mail2

Ha helyes fejléceket küld (például az base64_encode-val), akkor kap

mail(
   "vieldav@gmx.de",                          				  // Empfänger
   "=?UTF-8?B?".base64_encode("ä ö ü ß")."?=",                            // Betreff
   "ä ö ü ß",                                 			 	  // Inhalt
   "Content-type: text/plain; charset=utf-8\r\n"
  ."From: =?UTF-8?B?".base64_encode("ä ö ü ß")."?=<david@vielhuber.de>"   // Header (Absender)
);

és végül a GMX is helyes ábrázolást mutat:

mail3

Vissza