poŝto () en PHP kun UTF-8 kaj umlaŭtoj

Sendi retpoŝton per PHP plej bone fariĝas per potencaj klasoj kiel PHPMailer . Konvena envolvaĵaj funkcioj ebligas uzienhavon en UTF-8 kunkelkaj linioj de kodo, enmeti bildojn kajsendi aligxojn ĉifritajn. Se vi volas ŝpari la supereton kaj, male al larekomendo, uzu la poŝton dePHP-funkcio () , vi trovosproblemojn plej malfrue dum uzado de umlaŭtoj kaj UTF-8.


Post voki la funkcion kun

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

en UTF-8 kodita dosiero jam kaŭzas problemojn en la enirkesto: Outlook 2013 estas ankoraŭ kompatema kaj montras ĉion ĝuste:

poŝto1

Sed jam GMX ne pardonas la mankantajn titolojn kaj montras malsukcesan temon, sendilon kaj enhavon:

poŝto2

Se vi sendas la ĝustajn titolojn (ekzemple kun base64_encode), vi ricevos

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

kaj fine GMX ankaŭ montras ĝustan reprezentadon:

poŝto3

Reen