现在的位置: 首页 > 综合 > 正文

解决php中用mail发邮件时标题出现乱码

2012年05月11日 ⁄ 综合 ⁄ 共 522字 ⁄ 字号 评论关闭

php程序使用mail()函数发送邮件的时候,标题中文的话会出现乱码。

解决方法:
先用函数base64_encode() — 使用 MIME base64 对数据进行编码
标题字符串前加编码类型例如: =?UTF-8?B?
标题字符串后加:?=
邮件header说明Content-type — 防止邮件正文也乱码

  1. $to         = xinple@example.com;
  2. $subject  = =?UTF-8?B?.base64_encode(邮件标题).?=;
  3. $headers  = MIME-Version: 1.0 . \r\n;
  4. $headers .= Content-type: text/html; charset=utf-8 . \r\n;
  5. // Additional headers
  6. $headers .= To: Xinple <xinple@example.com> . \r\n;
  7. $headers .= From: Admin <admin@example.com> . \r\n;
  8. $headers .= Reply-To: Xinple <xinple@example> . \r\n;
  9. mail($to, $subject, $message, $headers);

抱歉!评论已关闭.