mail () في PHP مع UTF-8 و umlauts

من الأفضل القيام بالبريد الإلكتروني مع PHP مع فصول قوية مثل PHPMailer . تتيح وظائف الغلاف الملائمة استخدام المحتوى في UTF-8 مع بضعة أسطر من التعليمات البرمجية ، لتضمين الصور وإرسال المرفقات المشفرة. إذا كنت تريد حفظ النفقات العامة ، وخلافًا للتوصية ، استخدم بريد وظيفة PHP () ، فسوف تواجه مشكلات على أقصى تقدير عند استخدام umlauts و UTF-8.


بعد استدعاء الوظيفة مع

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

في ملف UTF-8 المشفر يؤدي بالفعل إلى مشاكل في البريد الوارد: Outlook 2013 لا يزال لطيفًا ويعرض كل شيء بشكل صحيح:

mail1

ولكن بالفعل لا تتسامح GMX مع الرؤوس المفقودة وتعرض موضوعًا ومرسلًا ومحتوى غير ناجحين:

البريد 2

إذا أرسلت الرؤوس الصحيحة (على سبيل المثال مع base64_encode) ، فستحصل على

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

وأخيرًا يظهر GMX أيضًا تمثيلًا صحيحًا:

mail3

عودة