mail () en PHP con UTF-8 y diéresis

El envío de correos electrónicos con PHP serealiza mejor con clases potentes como PHPMailer . Las prácticas funciones de envoltura hacen posible usar contenido en UTF-8 conunas pocas líneas de código, para incrustar imágenes y enviararchivos adjuntos encriptados. Si desea guardar los gastosgenerales y, contrariamente a la recomendación, utilicela funciónPHP mail () ,encontrará problemasa más tardar cuando usediéresis y UTF-8.


Nach Aufruf der Funktion mit

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

in einer UTF-8 kodierten Datei führt im Posteingang bereits zu Problemen: Outlook 2013 ist noch gnädig und stellt alles korrekt dar:

mail1

Aber schon GMX verzeiht die fehlenden Header nicht und zeigt einen missratenen Betreff, Absender und Inhalt:

mail2

Sendet man die korrekten Header (beispielsweise mit base64_encode) mit, erhält man

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

und schließlich zeigt auch GMX eine korrekte Darstellung:

mail3

Atrás