2007/4/5

解決主機發信亂碼的問題

沒有做網頁設計的設計人或痛惡程式的設計人請直接跳過這篇,
因為本篇會讓您反感 (設計人普遍是這樣認為)。

因為Gmail掀起了UTF-8萬國碼編碼的大戰
導致 大小主機商 + 網站管理者 被電子郵件的編碼搞昏頭。

VAW POST廢報的網站與回報系統原本也很正常,
但是近日來變一堆亂碼,訂閱的人也不受其擾。

在徹夜8個小時的研究之下 終於解開這個另非英文語系國家傷透腦筋的東西!!
寄信的編碼也正常了 (也快累死了 XD )
為了這次的大徹大悟,特別分享給還遭受寄信亂碼苦惱的網管或網頁設計師

我的靈感是巧取這個程式,你可以研究對岸高手雲集的
DISCUZ!論壇的 mail_config.inc.php(請自行下載UTF-8版本)

或是直接看下面的範例自行修改:
(本範例僅適用於 php/linux系統,採用主機Bluehost)

寄信PHP程式內容,利用base64 校正(當然別忘記寫在PHP括號裡):


$email_message="信件內容";
$email_subject = '=?utf-8?B?'.base64_encode("信件主題").'?=';
$email_message = chunk_split(base64_encode($email_message));
$email_from = '=?utf-8?B?'.base64_encode("寄件人 ").'?=';
$email_to = "收件人";
$headers = "From: 寄件人\r\nMIME-Version: 1.0\r\nContent-type: text/plain; charset=utf-8\r\nContent-Transfer-Encoding: base64\r\n";


mail($email_to, $email_subject, $email_message, $headers);

好,文章就寫到這邊,再下去可能會眼冒金星。
希望GOOGLE搜索後,這篇文章能讓被亂碼所苦的網頁設計師和網管所看到。

0 comments: