发现mail函数在发送邮件时,标题为中文,使用无论utf-8编码还是big5,gb2312编码均出现乱码,在网上一通乱找,找到了mail函数发送html邮件标题乱码的解决方法
<?php
function encode($str,$encode='utf-8'){
$str = base64_encode($str);
$str = "=?".$encode."?B?".$str."?=";
return $str;
}
function mymail($to,$subject,$message){
$subject = encode($subject);
$admin_email = 'dayanmei@dayanmei.com';
$admin_name = '管理员';
$admin_name = encode($admin_name);
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
// Additional headers
$headers .= sprintf('To: %1$s',$to) . "\r\n";
$headers .= sprintf('From: %1$s <%2$s>',$admin_name,$admin_email) . "\r\n";
$status = mail($to, $subject, $message, $headers);
return $status;
}
对mail函数有点不太明白的是,为什么已经有了to,还加多一个header,To