首页 > 教程 >
php的mail函数发送UTF-8编码中文邮件时标题乱码怎么办?
2023-02-17教程围观次
简介php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法:1、将subject里头的文字符合RFC2047的规范;2、在headers中添加【content-type】;3、对用来发送邮件的主机进行正确配置。php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法:1、使用PEAR的Mail类PEAR的Mail类可以让你选择使用sendmail或者SMTP方式发信,这样的包装好
php的 mail函数发送UTF-8 编码中文 邮件时标题 乱码的解决办法:1、将subject里头的文字符合RFC 2047的规范;2、在headers中添加【content-type】;3、对用来发送邮件的主机进行正确配置。
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法:
1、使用 PEAR 的 Mail 类
PEAR 的 Mail 类可以让你选择使用 sendmail 或者 SMTP 方式发信,这样的包装好的接口很好用,你没有必要去自己重新发明轮子。
2、关于headers 中subject 的乱码
不要把任何除了iso-8859-1编码之外的文字直接放进subject,正确的方式是让subject 里头的文字符合RFC 2047的规范,假设你的subject 处的文字的编码是GB2312,那么正确的subject 应该是这样的格式
$headers['subject'] = '=?GB2312?B?' . 64_encode('标题文字') . '?=';
如果是UTF-8 的话,把上面开头的GB2312 替换成UTF-8 即可。推荐在标题处使用GB2312 编码,因为MTA 的分化实在是严重,大部分的MSP使用的都是自己开发的 MTA,而相信国内的大部分 MTA 无论如何都是可以支持 GB2312 编码的。
而如果是发送到国外的MSP,则推荐你在subject 处使用经过 64 编码的 UTF-8 文字,因为他们很可能不支持 GB2312 编码。
3、一定在headers 中添加content-type
电子邮件的 headers 中的 content-type 处类似网页的,也是 text/plain; charset=gb2312 这样的格式。这个选项主要对收邮件的客户端有意义,可以避免在客户端出现乱码,部分的 Webmail 也会根据这里的设置对邮件的内容进行编码转换以正确显示。你可以设想一下你用 gb2312 编码发到 .com.tw 的邮箱时候的情况。
4、对你用来发送邮件的主机进行正确配置
1)一定配置反向解析,因为大部分的非固定 IP 都无法做反向解析,部分反垃圾邮件策略以此作为判断依据。
2)一定配置 MX 解析,道理同上。
3)确保你的 return path 是能够收到退信的,否则你的邮件发送服务器可能会进入接收端的黑名单。
$subject = stripslashes($the_post[' ']); $headers = "MIME-Version: 1.0rn"; $headers .= "Content-type: text/plain; charset=utf-8rn"; $headers .= "Content-Transfer-Encoding: 8bitrn"; $message = stripslashes(strip_tags($the_post['Content'])); mail($to, $subject, $message, $headers);
先用函数 64_encode()— 使用MIME 64 对数据进行编码
标题字符串前加编码类型例如: =?UTF-8?B?
标题字符串后加:?=
例如:
<?php $to = "clairelume@qq.com"; //将此电子邮件地址改为自己的。 $name = $_POST['name']; $email = $_POST['email']; $subject = "来自博客读者的邮件"; $subject = "=?UTF-8?B?". 64_encode($subject)."?="; $headers = "MIME-Version: 1.0rn"; $headers .= "Content-type: text/plain; charset=utf-8rn"; $headers .= "Content-Transfer-Encoding: 8bitrn"; $message = $_POST['message']; mail($to,$subject,$message,"From: ".$email."",$headers); echo 'OK '.$name.', 您的邮件已发送。'; ?>
这样,发送的中文邮件标题就不是乱码了。
下载链接:网站源码/小程序源码/网站模板下载
下载排行
- 最新版去水印小程序源码/基于WordPress的短视频去水印小程序源码
- 某鱼最近卖的很火蓝色版微信去水印小程序源码+接口
- 最新短视频去水印小程序源码/带流量主/外卖CPS系统/批量解析/修改MD5
- 帝国CMS仿管理资源吧资料下载网站模板源码/下载会员+积分付费下载功能自动采集资源网站源码
- 苹果CMS二次元慕乔JOELEO模板/精美UI手机版影视模板
- WordPress主题 JustNews5.2.2 + QAPress问答插件适合源码站虚拟资源站个人博客
- 最新去水印小程序源码分享/无需后台/对接接口/支持全网去水印功能
- 知识付费小程序源码升级版知识付费变现小程序源码+卡密-独立后台版本
- 爱看小说网源码全站带数据打包/ThinkPHP内核小说网站源码
- TooNaughty网址导航主题/WordPress主题下载