Created
July 22, 2013 05:20
-
-
Save WenLiangTseng/6051451 to your computer and use it in GitHub Desktop.
PHP寄送郵件的寫法
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/*使用PHP mail()寄送UTF-8編碼之電子郵件 | |
常遇到的問題是,「郵件標題」或「寄件者」是亂碼的問題 | |
主要的原因在於,電子郵件標準格式中, | |
表頭的部分不允許使用雙位元的文字, | |
所以,使用mb_encode_mimeheader()函式 | |
將雙位元文字編碼為單位元字串。 | |
*/ | |
//範例: | |
mb_internal_encoding('UTF-8'); | |
//$subject = mb_encode_mimeheader('訂單', 'UTF-8'); | |
$subject = "訂單"; | |
$subject = "=?UTF-8?B?" . base64_encode($subject) . "?="; | |
//用 base64 解決在某些主機上 mb_encode_mimeheader 寄不出去的問題,參考資料//http://www.macsoho.net/blog/?p=143 | |
$message = $html; //HTML格式的信件內容 | |
$headers = "MIME-Version: 1.0" . PHP_EOL; | |
$headers .= "Content-type: text/html; charset=utf-8" . PHP_EOL; | |
$headers .= | |
"From: ".mb_encode_mimeheader('訂購網', 'UTF-8')." <xxxx@xxxx.xxx.xx>" . PHP_EOL; | |
mail($to,$subject,$message,$headers); | |
//因mb_encode_mimeheader()預設的字串編碼為西方ISO-8859-1, | |
//而此範例使用UTF-8編碼中文字, | |
//故程式中需使用mb_internal_encoding()將內部預設編碼改為UTF-8 | |
//參考資料: | |
//最新PHP+MySQL+AJAX網頁程式設計(旗標出版) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment