我發現一個問題, 若自定義系統名為中文時,當系統發信給用戶時, 主旨會亂碼. 估計用以下能解決吧, 供參考
function mail_list($mail_title,$message){
global $link;
global $dbmail;
$mailstr="select name,email from $dbmail where status='yes'";
$mailresult=mysql_query($mailstr,$link) or die('cc'.mysql_error());
$headers="MIME-Version:1.0\r\n";
$headers.="Content-type:text/html;charset=utf-8\r\n";
$headers.="From: =?UTF-8?B?".base64_encode("圖資學�{討論區轉寄")."?= <libit@nttu.edu.tw>\r\n";
while(list($admname,$admemail)=mysql_fetch_row($mailresult)){
mail($admemail,"=?UTF-8?B?".base64_encode($mail_title)."?=",$message,$headers);
}
}
Thanks...
我會修這個問題
版本: Bug Tracker 2.5.4
當系統名稱為中文時,修改密碼所寄出的信件的主旨會變菱形問號,下列方法可處理喔!
Before
$subject = "Password changed on .$SYSTEM['program_name']."!!";
After
$subject = "Password changed on "."=?UTF-8?B?". base64_encode($SYSTEM['program_name'])."?="."!!";
Before
$subject = "Welcome to ".$SYSTEM['program_name']."!!";
After
$subject = "Welcome to "."=?UTF-8?B?". base64_encode($SYSTEM['program_name'])."?="."!!";
我這樣修正是可將主旨變成正常,但會不會有其他問題,還請Alex說明一下,謝謝!(我也是Alex)
上一個檔案是email_function.php
於feedback_email_function.php也有相同地方要修改!
修改如下:
before
$subject = "Password changed on ".$feedback_system_name."!!";
after
$subject = "Password changed on "."=?UTF-8?B?".base64_encode($feedback_system_name)."?="."!!";
before
$subject = "Welcome to ".$feedback_system_name."!!";
after
$subject = "Welcome to "."=?UTF-8?B?".base64_encode($feedback_system_name)."?="."!!";
我的修法是:
$subject = "=?UTF-8?B?".base64_encode($subject)."?=";