pico hosting ผู้ให้บริการ Web hosting จดโดเมนราคาประหยัด  

บทความ: การส่ง email เป็นภาษาไทย (UTF-8) ใน PHP

ในภาษา PHP จะมี function สำหรับส่งเมล์คือ function mail(); นั่นเอง หลายๆคนคงเคยใช้ function นี้ในการส่งเมล์มาแล้ว วันนี้จะมาแนะนำวิธีการส่งเมล์เป็นภาษาไทย และใช้ encoding เป็น UTF-8 กันครับ
การส่งเมล์เป็นภาษาไทย ถ้าต้องการส่งถึงผู้รับแล้ว ข้อความและหัวข้อของอีเมล์ ไม่ผิดพลาด สามารถใช้โปรแกรม email client อ่านเป็นภาษาไทย ทั้งหัวข้อและข้อความนั้น เราต้องระบุ encoding ของ หัวข้อและข้อความ ของอีเมล์ก่อนที่จะส่งไป สำหรับการกำหนด encoding ของ subject ให้เป็น encoding แบบ UTF-8 สามารถทำได้โดยเข้ารหัสของ subject ก่อนที่จะส่งดังนี้

$subject = '=?utf-8?B?'.base64_encode("หัวข้ออีเมล์ภาษาไทยแบบ UTF-8").'?=';

สำหรับการกำหนด encoding ของข้อความในอีเมล์ สามารถกำหนด encoding ลงไปใน header ของอีเมล์ได้เลย และไม่ต้องเข้ารหัสข้อความใหม่เหมือนกับ subject ดังตัวอย่าง

$header = 'Content-type: text/plain; charset=utf-8'. "\r\n";

ตัวอย่างการส่ง email เป็นภาษาไทย (UTF-8) ด้วย PHP
<?PHP
	$to = "customer@somedomain.com";
	$subject = "=?utf-8?B?".base64_encode("หัวข้อของอีเมล์ภาษาไทย UTF-8")."?=";
	$header  = "MIME-Version: 1.0\r\n";
	$header .= "Content-type: text/plain; charset=utf-8\r\n";
	$header .= "From: admin@somedomain.com\r\n";
	$header .= "Reply-To: admin@somedomain.com\r\n";
	$header .= "X-Mailer: PHP/picoHosting";
	$message = "ข้อความบรรทัดที่ 1\r\n";
	$message = "ข้อความบรรทัดที่ 2\r\n";
	$message = "ข้อความบรรทัดที่ 3\r\n";
	mail($to, $subject, $messsage, $header);
?>

ข้อแนะนำ การใช้งาน "\r\n" กับ '\r\n' ไม่เหมือนกันนะครับ เพราะฉะนั้น ควรตรวจสอบความถูกต้องของ source code ด้วยครับ

ใครที่นำบทความไปเผยแพร่ที่เว็บไซต์อื่น กรุณาทำลิ้งค์กลับมายังบทความต้นฉบับด้วยนะครับ