postë () në PHP me UTF-8 dhe umlauts

Dërgimi me email me PHP bëhet më së miri me klasa të fuqishme si PHPMailer . Funksionet e përshtatshme për mbështjellës bëjnë të mundur përdorimin e përmbajtjes në UTF-8 me disa rreshta kodesh, për të futur imazhe dhe për të dërguar bashkëlidhje të koduara. Nëse dëshironi të kurseni pjesën e sipërme dhe, në kundërshtim me rekomandimin, përdorni postën e funksionit PHP () , do të hasni probleme më së voni kur përdorni umlauts dhe UTF-8.


Pas thirrjes së funksionit me

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

në një skedar të koduar UTF-8 tashmë çon në probleme në inbox: Outlook 2013 është akoma i këndshëm dhe tregon gjithçka në mënyrë korrekte:

mail1

Por tashmë GMX nuk fal titujt që mungojnë dhe tregon një subjekt, dërgues dhe përmbajtje të pasuksesshme:

mail2

Nëse dërgoni titujt e saktë (për shembull me base64_encode), ju merrni

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)
);

dhe në fund GMX gjithashtu tregon një përfaqësim të saktë:

mail3

Prapa