常遇到的問題是,「郵件標題」或「寄件者」是亂碼的問題   
主要的原因在於,電子郵件標準格式中,    
表頭的部分不允許使用雙位元的文字,    
所以,使用mb_encode_mimeheader()函式    
將雙位元文字編碼為單位元字串。    
範例:    
mb_internal_encoding('UTF-8');    
$subject=mb_encode_mimeheader('訂單', 'UTF-8');    
$message= $html; //HTML格式的信件內容    
$headers = "MIME-Version: 1.0\r\n";    
$headers .= "Content-type: text/html; charset=utf-8\r\n";    
$headers .=     
"From: ".mb_encode_mimeheader('訂購網', 'UTF-8')." <xxxx@xxxx.xxx.xx>\r\n";    
mail($to,$subject,$message,$headers);    
因mb_encode_mimeheader()預設的字串編碼為西方ISO-8859-1,    
而此範例使用UTF-8編碼中文字,    
故程式中需使用mb_internal_encoding()將內部預設編碼改為UTF-8    
參考資料:    
最新PHP+MySQL+AJAX網頁程式設計(旗標出版)
 
 
沒有留言:
張貼留言