Monday, September 24, 2012

PHP กับการส่งอีเมล์ (Email) ภาษาไทย (Thai) ด้วย UTF-8


ปัญหาที่พบเจอ

PHP Mail Thai Problem

ส่งเห็นว่าปลายทางไม่สามารถอ่านออกได้

การแก้ปัญหานี้ก็เพียงระบุ 

Code (PHP)

1.$strSubject = "=?UTF-8?B?".base64_encode("ส่งอีเมล์ภาษาไทย ด้วย php ทดสอบชื่อเรื่องภาษาไทย")."?=";
2.$strHeader .= "MIME-Version: 1.0' . \r\n";
3.$strHeader .= "Content-type: text/html; charset=utf-8\r\n";


ในส่วนของ header และ Subject เพื่อบ่งบอกว่าถูกเข้ารหัส encode ที่เป็น UTF-8

Code เต็ม ๆ

การ Save ไฟล์จะต้องใช้ Encoding เป็น UTF-8 เหมือนในรูบครับ

Encoding UTF-8

phpSendEmailThai.php

01.<html>
02.<head>
03.<title>ThaiCreate.Com PHP Sending Email</title>
04.<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
05.</head>
06.<body>
07.<?
08.$strTo = "member@thaicreate.com";
09.$strSubject = "=?UTF-8?B?".base64_encode("ส่งอีเมล์ภาษาไทย ด้วย php ทดสอบชื่อเรื่องภาษาไทย")."?=";
10.$strHeader .= "MIME-Version: 1.0' . \r\n";
11.$strHeader .= "Content-type: text/html; charset=utf-8\r\n";
12.$strHeader .= "From: Mr.Weerachai Nukitram<webmaster@thaicreate.com>\r\nReply-To: thaicreate@hotmail.com";
13.$strVar = "ข้อความภาษาไทย";
14.$strMessage = "
15.<h1>My Message</h1><br>
16.<table width='285' border='1'>
17.<tr>
18.<td><div align='center'><strong>My Message </strong></div></td>
19.<td><div align='center'><font color='red'>My Message</font></div></td>
20.<td><div align='center'><font size='2'>My Message</font></div></td>
21.</tr>
22.<tr>
23.<td><div align='center'>My Message</div></td>
24.<td><div align='center'>My Message</div></td>
25.<td><div align='center'>My Message</div></td>
26.</tr>
27.<tr>
28.<td><div align='center'>".$strVar."</div></td>
29.<td><div align='center'>".$strVar."</div></td>
30.<td><div align='center'>".$strVar."</div></td>
31.</tr>
32.</table>";
33. 
34.$flgSend = @mail($strTo,$strSubject,$strMessage,$strHeader);  // @ = No Show Error //
35.if($flgSend)
36.{
37.echo "Email Sending.";
38.}
39.else
40.{
41.echo "Email Can Not Send.";
42.}
43.?>
44.</body>
45.</html>


Screenshot

ผลลัพธ์ผ่าน Webmail

PHP Send Mail Thai Message 

ผ่านโปรแกรมประเภท Outlook 

PHP Send Mail Thai Message

No comments:

Post a Comment