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

作者: hzy , post on September 27th, 2009 , English Version
【本站文章除注明转载外,均为本站原创编译】
转载请注明:文章转载自: Oracle Clinic – Maclean Liu的个人技术博客 [http://www.oracledatabase12g.com/]
本文标题: PHP使用mail函数发送邮件标题乱码问题
本文永久地址: http://www.oracledatabase12g.com/archives/php%e4%bd%bf%e7%94%a8mail%e5%87%bd%e6%95%b0%e5%8f%91%e9%80%81%e9%82%ae%e4%bb%b6%e6%a0%87%e9%a2%98%e4%b9%b1%e7%a0%81%e9%97%ae%e9%a2%98.html

PHP程序使用mail()函数发送邮件的时候,标题中文的话会出现乱码。
解决方法:
先用函数base64_encode() ― 使用 MIME base64 对数据进行编码
标题字符串前加编码类型例如: =?UTF-8?B?
标题字符串后加:?=
邮件header说明Content-type ― 防止邮件正文也乱码

举例:
$to         = ‘admin@youyus.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: Xinple <’”>admin@youyus.com>’ . “\r\n”;
$headers .= ‘From: Admin <’”>admin@youyus.com>’ . “\r\n”;
$headers .= ‘Reply-To: Xinple <’”>webmaster@163gl.com>’ . “\r\n”;
mail($to, $subject, $message, $headers);

© 2009, www.oracledatabase12g.com. 版权所有.文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.

暂无相关文章 | No related posts.

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>