POST TIME:2017-11-13 00:33
織夢的UTF8版本一直有一些編碼的問題,轉(zhuǎn)碼的問題沒有處理的非常好,所以一般選擇織夢版本的時候,會選擇織夢GBK版本,今天發(fā)現(xiàn)的織夢發(fā)送郵件時,發(fā)件人亂碼的問題,也是織夢DedeCMS的UTF-8版本。
織夢UTF-8版本發(fā)送郵件亂碼是存在已久的問題,最新5.7 SP1的UTF8版本已經(jīng)解決了大部分亂碼問題。但是163、126郵箱或者QQ郵箱接收織夢DedeCMS發(fā)送的郵件時,發(fā)件人顯示的還是亂碼(調(diào)用的系統(tǒng)設置里的網(wǎng)站名稱),而且網(wǎng)站名稱太長時十分不美觀,如何使發(fā)件人中文名既不亂碼,又能隨意修改為較短的名稱呢?
織夢發(fā)送郵件中文發(fā)件人亂碼
既然是亂碼,解決的辦法就是進行轉(zhuǎn)碼了。經(jīng)過搜索,結(jié)合前人的經(jīng)驗找到以下辦法,提供給大家:
首先我們打開織夢的郵件發(fā)送文件,include/mail.class.php文件,查找以下的代碼:
1 |
$header .= "From: $webname<" . $from . ">\r\n" ; |
在此行代碼上面添加一行代碼:
1 |
$webname = "=?" . $GLOBALS [ 'cfg_soft_lang' ]. "?B?" . base64_encode ( '建站網(wǎng)' ). "?=" ; |
以上的代碼,就是使用PHP的轉(zhuǎn)碼函數(shù),根據(jù)安裝的系統(tǒng)編碼,對中文發(fā)件人名稱進行了轉(zhuǎn)碼。如果嫌系統(tǒng)調(diào)用的發(fā)件人名稱太長,可以將XXXX網(wǎng)這一發(fā)件人名稱修改為你想要的任意中文名。如不想改動,可以將 'XXXX網(wǎng)' 換成 $webname 調(diào)用網(wǎng)站名。
以上的解決辦法經(jīng)過在織夢DedeCMS 5.7SP1的UTF-8版本中測試,完美解決了亂碼問題。