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

वापस