GORAGOD.com

ปัญหาการส่งเมล์ แล้วเป็นภาษาขอม

หากเว็บไซต์ของท่านทำการส่งเมล์ ด้วย UTF-8 อาจพบกับปัญหาภาษาขอม อันเนื่องมาจากภาษาหลักของเว็บที่อ่าน อีเมล์ก็ได้ครับ ยกตัวอย่างการส่งเมล์ที่เป็น UTF-8 ไปยัง hotmail มักเกิดเป็น ภาษาขอมเสมอ

แต่กับเจ้าอื่นอย่าง yahoo ไม่เป็นปัญหาครับ มันสามารถอ่าน email ที่เป็นภาษาไทยได้ถูกต้อง แต่โดยปกติแล้ว ปัญหานี้จะเกิดกับหน้า Inbox เท่านั้น ในส่วนของหน้า อ่านอีเมล์ มักจะไม่เป็นปัญหา แต่ถ้าในหน้าอ่านอีเมล์ของคุณก็อ่านไม่ออกเช่นกันให้ลองส่งเมล์เป็น HTML ครับ

ปัญหานี้ ถ้าแก้ที่ปลายเหตุ ก็คงต้องอาศัยการเปลี่ยน encoding ของ Browser เอาเอง เปลี่ยนให้เป็น UTF-8 ซะมันก็อ่านออก สำหรับ user บางคนที่ไม่รู้วิธีนี้ ก็อาจใช้วิธี มีข้อความภาษาอังกฤษ แจ้งให้ user ทำการเปลี่ยนภาษา

if you cannot read this email, please change your browser encoding to UTF-8

อันนี้เป็นการแก้ที่ปลายเหตุครับ

ส่วนถ้าจะแก้กันที่ต้นเหตุ ก็คงต้องไปเปลี่ยนการเข้ารหัสเมล์ ให้เป็น Ansi แทน UTF-8 ด้วยการใช้ ฟังก์ชั่นแปลงให้เป็น TIS-620 ก่อนส่ง

mail( $mailto , iconv( 'UTF-8' , 'TIS-620' , $subject ) , iconv( 'UTF-8' , 'TIS-620' , $msg ) , $Headers );

แปลงทั้ง 2 ส่วนนะครับ ทั้ง subject และ msg โดยใช้ร่วมกับเมล์แบบ HTML ที่ผมกล่าวถึงข้างบน นอกจากนี้ วิธีเหล่านี้จะทำให้ email ของคุณหลุดจาก ถังขยะ ได้อีกด้วย