PHP使用mail函数发送邮件标题乱码问题

发布时间:2009年05月27日      浏览次数:714 次
PHP程序使用mail()函数发送邮件的时候,标题中文的话会出现乱码。
解决方法:
先用函数base64_encode() — 使用 MIME base64 对数据进行编码
标题字符串前加编码类型例如: =?UTF-8?B?
标题字符串后加:?=
邮件header说明Content-type — 防止邮件正文也乱码
举例:
以下为引用的内容:
$to = 'abc@abc.com';
$subject = "=?UTF-8?B?".base64_encode('邮件标题')."?=";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
// Additional headers
$headers .= 'To: abc<abc@abc.com>' . "\r\n";
$headers .= 'From: Admin <admin@abc.com>' . "\r\n";
$headers .= 'Reply-To: abc<abc2@abc.com>' . "\r\n";
mail($to, $subject, $message, $headers);
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!