UTF-8 और umlauts के साथ PHP में मेल ()

PHP के साथ ईमेल भेजना सबसे अच्छी तरह से शक्तिशाली वर्गों जैसे PHPMailer के साथ कार्यान्वित किया जाता है। सुविधाजनक आवरण कार्य यूटीएफ -8 में सामग्री का उपयोग करना, छवियों को एम्बेड करने और कोड की कुछ पंक्तियों के साथ एन्क्रिप्टेड संलग्नक भेजना संभव बनाते हैं। यदि आप अपने आप को ओवरहेड को बचाना चाहते हैं और, सिफारिश के विपरीत, PHP फ़ंक्शन मेल () का उपयोग करें, तो आप नवीनतम में umlauts और UTF-8 का उपयोग करते समय समस्याओं में चलेंगे।


के साथ फ़ंक्शन को कॉल करने के बाद

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

UTF-8 एन्कोडेड फ़ाइल में पहले से ही इनबॉक्स में समस्याएं आती हैं: Outlook 2013 अभी भी अनुग्रह है और सब कुछ सही ढंग से प्रदर्शित करता है:

mail1

लेकिन जीएमएक्स लापता हेडर को माफ नहीं करता है और एक खराब विषय, प्रेषक और सामग्री दिखाता है:

mail2

यदि आप सही हेडर भेजते हैं (उदाहरण के लिए 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

वापस