视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php邮件中文乱码的解决办法
2020-11-02 18:28:22 责编:小采
文档


php邮件中文乱码的解决办法:首先使用HTML编辑邮件内容;然后设置“Content-Transfer-Encoding: 8Bit”;接着发送邮件的系统名和邮件地址;最后设置接收的邮件地址即可。

推荐:《PHP视频教程》

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

在这里,我将解决一个问题,也许很多人遇到过,困惑又不知道如何去做的问题。

如何发送中文邮件时没有乱码?

在这里我将告诉你如何发送UTF-8编码格式的中文电子邮件。本文不涉及GBK编码或者GB2312编码格式的中文邮件。

解决这个其实是很简单的。请读下面的代码。引用你的电邮标题为’=?UTF-8?B?’和’?=’。

你可以选择使用HTML编辑你的邮件内容,只是别忘了使用utf-8字符编码。

邮件Header内容

MIME-Version: 1.0

MIME版本(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?发送邮件人的姓名?= <FROM_EMAIL_ADDRESS>

发送的邮件地址

To: =?utf-8?B?接受邮件人的姓名?= <TO_EMAIL_ADDRESS>
接受的邮件地址
Subject: =?utf-8?B?邮件标题?=

邮件标题

通过查看邮件的源代码,我可以看到:

PHP Mail代码

public function send_email($to, $from, $subject, $message, $fromname = ”, $toname=”) {
 if($toname) {
 $to = ‘=?UTF-8?B?’.base_encode($toname).’?= ‘ . $to;
 }
 if($fromname) {
 $from = ‘=?UTF-8?B?’.base_encode($fromname).’?= ‘ . $from;
 }
 $headers = ‘From: ‘.$from."
".
 "MIME-Version: 1.0
" .
 "Content-Type: text/html; charset=UTF-8; format=flowed
" .
 "Content-Transfer-Encoding: 8Bit
" .
 ‘X-Mailer: PHP/’ . phpversion();
 $subject = ‘=?UTF-8?B?’.base_encode($subject).’?=’;
 //send email
 mail($to, $subject, $message, $headers);
}

下载本文
显示全文
专题