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