mail () în PHP cu UTF-8 și umlauturi

Trimiterea prin e -mail cu PHP se face cel mai bine cu clase puternice precum PHPMailer . Funcțiile convenabile de înveliș fac posibilă utilizarea conținutului în UTF-8 cu câteva linii de cod, pentru a încorpora imagini și pentru a trimite atașamente criptate. Dacă doriți să salvați aerul și, contrar recomandărilor, utilizați funcția PHP mail () , cel mai târziu veți întâmpina probleme atunci când utilizați umlauturi și UTF-8.


După apelarea funcției cu

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

într-un fișier codat UTF-8 duce deja probleme în căsuța de e-mail: Outlook 2013 este încă plin de bunătate și afișează totul corect:

mail1

Dar deja GMX nu iartă anteturile lipsă și arată un subiect, un expeditor și un conținut nereușite:

mail2

Dacă trimiteți anteturile corecte (de exemplu cu base64_encode), veți primi

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

și în cele din urmă GMX arată, de asemenea, o reprezentare corectă:

mail3

Înapoi