2009年11月3日 星期二

PHP:mail函式 標題出現亂碼問題

今天受託替人寫自動回信的功能
因為功能很小,所以我很自然使用mail()函式去做
但是卻出現了標題有全形符號變成亂碼的問題,像是『』,≠ 等等

後來找的一些資料
http://blog.roodo.com/rocksaying/archives/2998451.html
http://blog.roodo.com/rocksaying/archives/2950655.html

原來這問題存在已久了,mail()函式之下還有個mb_send_mail()函式,mail()函式裡面會用到mb_send_mail()進行傳信的動作,所以我只要將原先的寄信程式
mail("del680202@gmail.com",$title,$count,$option);


修改成用mb_send_mail()的方式去自定編碼寄送就可以解決問題

mb_internal_encoding("UTF-8"); \\定義編碼方式
mb_send_mail("del680202@gmail.com",$title,$count,$option);


不過這種函式處裡太底層了點,所以還是用別人寫好的套件像是PHPMailer來進行工作或許會是比較好的選擇

沒有留言: