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

Dërgimi i postave elektronike me PHP implementohet më së miri me klasa të fuqishme siç është PHPMailer . Funksionet e përshtatshme të mbështjellësit bëjnë të mundur përdorimin e përmbajtjes UTF-8, vendosjen e imazheve dhe dërgimin e bashkëngjitjeve të koduara vetëm me disa rreshta kodi. Nëse doni të kurseni veten nga lart dhe të përdorni postën e funksionit PHP () në kundërshtim me rekomandimin, do të keni probleme kur përdorni umlauts dhe UTF-8 më së voni.


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ë hyrje: Outlook 2013 është akoma i hirshëm dhe tregon gjithçka në mënyrë korrekte:

posta1

Por GMX nuk i fal kokat e munguara dhe tregon një temë, dërgues dhe përmbajtje të keqe:

posta2

Nëse dërgoni kokat e duhura (për shembull me base64_encode), atëherë 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 së fundmi GMX tregon një përfaqësim të saktë:

posta3

Mbrapa