我又來雞婆一下....
因為我是使用最乾淨的【全新安裝】方式.... 所以應該是最標準的 2.0.18 UTF-8 版討論區....
因此標準的 2.0.18 UTF-8 版把註冊信寄到 yahoo.com.tw 同樣會面臨【主題:】亂碼的問題,不過 yahoo.com 則是沒有這個問題,但是整個網頁要改用 Unicode 才能看到,否則通通是亂碼。
在這裡的【dayto】提出的辦法
http://phpbb-tw.net/phpbb/viewtopic.php?t=34400
其實 MOD 只要改成這樣:
代碼: 選擇全部
#
#-----[OPEN]----------
#
includes/emailer.php
#
#-----[ FIND 尋找]---------------------------------------------
#
$result = smtpmail($to, $this->subject, $this->msg, $this->extra_headers);
#
#-----[ BEFORE, ADD 之前,新增]---------------------------------------------
#
$this->subject = "=?UTF-8?B?" . base64_encode($this->subject) . "?=";
#
#-----[ FIND 尋找]---------------------------------------------
#
$to = ($to == '') ? (($board_config['sendmail_fix']) ? ' ' : 'Undisclosed-recipients:;') : $to;
$result = @mail($to, $this->subject, preg_replace("#(?<!
)
#s", "
", $this->msg), $this->extra_headers);
#
#-----[ MODIFY, ADD 修改, ?#91;上]---------------------------------------------
#
$to = ($to == '') ? (($board_config['sendmail_fix']) ? ' ' : 'Undisclosed-recipients:;') : $to;
$this->subject = iconv('UTF-8','Big5',$this->subject);
$result = @mail($to, $this->subject, preg_replace("#(?<!
)
#s", "
", $this->msg), $this->extra_headers);
#
#-----[ SAVE/CLOSE ALL FILES 儲存/關閉所有檔案 ]-------------------
#
# EoM 修正結束
#
這段程式後面還有一個同樣的【$result = @mail ....】指令,因為是放在 if 指令裡面,應該不用再做 UTF-8 處理了。
這樣子寄到 yahoo.com.tw 的認證信就不會出現亂碼囉~~
要這麼做主要是因為一封【全 UTF-8】的信,主旨部份會長成這樣(我使用的是 Mac OS X 的 Mail 來測試 yahoo.com.tw):
Subject: =?UTF-8?B?5ris6Kmm?=
中間的【5ris6Kmm】編碼其實是【UTF-8的主旨】,所以在主旨前面加上的是【=?UTF-8?B?】後面加上【?=】
嗯~~這就是說,要繼續等下一個 2.0.xx 原廠才可能支援 UTF-8 了.....
PS. 不知道為啥,貼上的【之前,加上】的【加】會變成亂碼??我使用的是 Mac OS X 的 Safari 瀏覽器。