您好,欢迎访问一九零五行业门户网

解决PHP mail发送UTF-8中文邮件乱码

在这里,我将解决一个问题,也许很多人遇到过,困惑又不知道如何去做的问题。 如何发送中文邮件时没有乱码? 在这里我将告诉你如何发送utf-8编码格式的中文电子邮件。本文不涉及gbk编码或者gb2312编码格式的中文邮件。 解决这个其实是很简单的。请读下面的代
在这里,我将解决一个问题,也许很多人遇到过,困惑又不知道如何去做的问题。
如何发送中文邮件时没有乱码?在这里我将告诉你如何发送utf-8编码格式的中文电子邮件。本文不涉及gbk编码或者gb2312编码格式的中文邮件。
解决这个其实是很简单的。请读下面的代码。引用你的电邮标题为’=?utf-8?b?’和’?=’。
你可以选择使用html编辑你的邮件内容,只是别忘了使用utf-8字符编码。
邮件header内容mime-version: 1.0mime版本(mime-version),这个头部域在邮件消息的报文用一个版本号码来指明消息遵从的mime规范的版本。目前版本是1.0。
content-type: text/html; charset=utf-8;支持html格式,utf-8编码。
content-transfer-encoding: 8bit
内容传输编码,8位元ascii码。
x-mailer: lixiphp
发送邮件的系统名,可以随便写。
from: =?utf-8?b?发送邮件人的姓名?= 发送的邮件地址
to: =?utf-8?b?接受邮件人的姓名?= 接受的邮件地址
subject: =?utf-8?b?邮件标题?=邮件标题
通过查看邮件的源代码,我可以看到:
php mail代码public function send_email($to, $from, $subject, $message,  $fromname = ”,  $toname=”) {
if($toname) {
    $to = ‘=?utf-8?b?’.base64_encode($toname).’?= ‘ . $to;
  }
  if($fromname) {
    $from = ‘=?utf-8?b?’.base64_encode($fromname).’?= ‘ . $from;
  }
  $headers = ‘from: ‘.$from.\r\n.
  mime-version: 1.0\r\n .
  content-type: text/html; charset=utf-8; format=flowed\r\n .
  content-transfer-encoding: 8bit\r\n .
  ‘x-mailer: php/’ . phpversion();
  $subject = ‘=?utf-8?b?’.base64_encode($subject).’?=’;
  //send email
  mail($to, $subject, $message, $headers);
}
这是一个简单的utf-8邮件发送功能,它把头部信息中的中文通过加密来解决中文乱码的问题。
(...)
read the rest of 解决php mail发送utf-8中文邮件乱码 (3 words)
© lixiphp for lixiphp, 2013. | permalink | no comment |add to del.icio.us
post tags: mail, php, utf8
feed enhanced by better feed from ozh
其它类似信息

推荐信息