php 读取邮件乱码,php邮件中文乱码的解决办法

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

dddd72215a6a5c88b63ed0d48ed1f33e.png

解决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?发送邮件人的姓名?=

发送的邮件地址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);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值