PHP'de UTF-8 ve umlauts ile mail ()

PHP ile e -posta gönderme en iyi PHPMailer gibi güçlü sınıflarla yapılır. Kullanışlı sarma işlevleri, UTF-8'deki içeriği birkaç satır kodla kullanmayı, görüntüleri gömmeyi ve şifreli ekler göndermeyi mümkün kılar. Ek yükü kaydetmek istiyorsanız ve tavsiyenin aksine PHP işlev postasını () kullanın , en geç üç nokta ve UTF-8 kullanırken sorunlarla karşılaşırsınız.


İle fonksiyonu çağırdıktan sonra

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

UTF-8 kodlu dosyada zaten gelen kutusunda sorunlara yol açar: Outlook 2013 hala zarif ve her şeyi doğru bir şekilde görüntüler:

mail1

Ancak GMX zaten eksik başlıkları affetmiyor ve başarısız bir konu, gönderen ve içerik gösteriyor:

posta2&#39;yi

Doğru başlıkları gönderirseniz (örneğin base64_encode ile),

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

ve son olarak GMX de doğru bir temsili gösterir:

mail3

Geri