mail () PHP-ben UTF-8-mal és umlautokkal

Az e-mailek küldése PHP-vel a leghatékonyabb hatékony osztályokkal, például a PHPMailerrel valósítható meg . A kényelmes burkoló funkciók lehetővé teszik az UTF-8 tartalom használatát, képek beágyazását és titkosított mellékletek elküldését néhány kódsorral. Ha el akarja menteni az általános költségeket, és az ajánlással ellentétben a mail () PHP funkciót kívánja használni, akkor legkésőbb az umlauts és az UTF-8 használatakor problémákba ütközik.


Miután meghívta a függvényt a

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

egy UTF-8 kódolású fájlban már problémákhoz vezet a beérkező levelek mappában: az Outlook 2013 még mindig kegyes és mindent helyesen jelenít meg:

mail1

De a GMX nem bocsátja meg a hiányzó fejléceket, és rossz témát, feladót és tartalmat mutat:

mail2

Ha a megfelelő fejléceket küldi (például base64_encode kóddal), akkor megkapja

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 helyes ábrázolást mutat:

mail3

Vissza