[教學] 網站UTF-8化之後,郵件標題在webmail上會變成亂碼的簡易修改

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
jayhunglai
星球普通子民
星球普通子民
文章: 7
註冊時間: 2005-08-24 10:58

Re: [教學] 網站UTF-8化之後,郵件標題在webmail上會變成亂碼的

文章 jayhunglai »

dayto 寫:很多人都會提到網站UTF-8化之後,phpbb寄出的信在webmail上主旨會變成亂碼,當然小弟也是\r
後來在其他php網站找到一個好用的function,那就是iconv()函數,至於怎麼改請往下看

環境需求PHP版本 >= 4.0.5 而且有把iconv模組編譯進去
適用版本:2.0.13(因為我是用2.0.13啦,其他版本應該也行)
適用語系:正體中文

修改方式

代碼: 選擇全部

# 
#-----[OPEN]---------- 
# 
includes/emailer.php

# 
#-----[ FIND 尋找]--------------------------------------------- 
# 
$result = smtpmail($to, $this->subject, $this->msg, $this->extra_headers);

# 
#-----[ BEFORE, ADD 之前,?#91;上]--------------------------------------------- 
#
$this->subject = iconv('UTF-8','Big5',$this->subject);

# 
#-----[ FIND 尋找]--------------------------------------------- 
# 
$result = @mail($to, $this->subject, preg_replace("#(?<!
)
#s", "
", $this->msg), $this->extra_headers);

# 
#-----[ BEFORE, ADD 之前,?#91;上]--------------------------------------------- 
#
$this->subject = iconv('UTF-8','Big5',$this->subject);

# 
#-----[ SAVE/CLOSE ALL FILES 儲存/關閉所有檔案 ]------------------- 
# 
# EoM 修正結束
#
如果您的網站是簡體中文請把

代碼: 選擇全部

$this->subject = iconv('UTF-8','Big5',$this->subject);
改成

代碼: 選擇全部

$this->subject = iconv('UTF-8','GB2312',$this->subject);
經過以上修正之後,在yahoo的web mail上看信就不會變成亂碼了
不過這種方式比較適合採用單一語系的網站,如果是多語系共存的
還是會出問題
謝謝提供的好方法
經測試,確實可以讓標題不會亂碼\r
不過在hotmail上面\r
標題可以正確,但是進去內容後
內容(UTF-8)卻是亂碼了,這時改選此頁的編碼方式,卻不work
仍會停在big5

不過在gmail跟yahoo mail上,標題跟內容都可以正常顯示

我想可能要更進一步的功能判斷\r
讓標題跟內文都同一編碼,才能解決我目前在hotmail上遇到的問題

謝謝
阿維
竹貓忠實會員
竹貓忠實會員
文章: 868
註冊時間: 2003-02-23 13:36
來自: 台南市

文章 阿維 »

請問假如主機商不會安裝iconv這個套件,那我該如何讓他安裝呢?
oliver0121
星球普通子民
星球普通子民
文章: 11
註冊時間: 2004-01-24 14:14

文章 oliver0121 »

打岔一下

這裡有新的解法
不需要使用到iconv

請參考 :mrgreen:
葉綠素
星球普通子民
星球普通子民
文章: 9
註冊時間: 2004-09-17 00:58

文章 葉綠素 »

測試後...phpBB 2.0.22不支援
主題已鎖定

回到「phpBB 2 安裝與使用」