位置: 编程技术 - 正文
推荐整理分享php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法(php mktime函数),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php mail函数,php implode函数作用,php mail发送邮件,php implode函数作用,php imap函数,php mail发送邮件,php mktime函数,php mail函数,内容如对您有帮助,希望把文章链接给更多的朋友!
最近遇到一个问题,就是在使用php的mail函数发送utf-8编码的中文邮件时标题出现乱码现象,而邮件正文却是正确的。最初以为是页面编码的问题,发现页面编码utf-8没有问题啊,找了半天原因,最后找到了问题所在。
1.使用 PEAR 的 Mail 类
PEAR 的 Mail 类可以让你选择使用 sendmail 或者 SMTP 方式发信,这样的包装好的接口很好用,你没有必要去自己重新发明轮子。
2.关于headers 中subject 的乱码
不要把任何除了 iso--1 编码之外的文字直接放进subject,正确的方式是让subject 里头的文字符合RFC 的规范,假设你的subject 处的文字的编码是GB,那么正确的subject 应该是这样的格式$headers['subject'] = '=GBB' . base_encode('标题文字') . '=';如果是UTF-8 的话,把上面开头的GB 替换成UTF-8 即可。推荐在标题处使用GB 编码,因为MTA 的分化实在是严重,大部分的MSP使用的都是自己开发的 MTA,而相信国内的大部分 MTA 无论如何都是可以支持 GB 编码的。
而如果是发送到国外的MSP,则推荐你在subject 处使用经过base 编码的 UTF-8 文字,因为他们很可能不支持 GB 编码。
3.一定在headers 中添加content-type
电子邮件的 headers 中的 content-type 处类似网页的,也是 text/plain; charset=gb 这样的格式。这个选项主要对收邮件的客户端有意义,可以避免在客户端出现乱码,部分的 Webmail 也会根据这里的设置对邮件的内容进行编码转换以正确显示。你可以设想一下你用 gb 编码发到 .com.tw 的邮箱时候的情况。
4.对你用来发送邮件的主机进行正确配置
1)一定配置反向解析,因为大部分的非固定 IP 都无法做反向解析,部分反垃圾邮件策略以此作为判断依据。2)一定配置 MX 解析,道理同上。3)确保你的 return path 是能够收到退信的,否则你的邮件发送服务器可能会进入接收端的黑名单。
先用函数base_encode() — 使用MIME base 对数据进行编码标题字符串前加编码类型例如: =UTF-8B标题字符串后加:=例如:
这样,发送的中文邮件标题就不是乱码了。
是不是很简单,其实把问题分析透了,所有的问题都会迎刃而解了,希望这篇文章对大家的学习有所帮助。
表单提交错误后返回内容消失问题的解决方法(PHP网站) 表单提交错误后返回内容消失怎么办呐,今天就来分析解决一下这个问题。状况概述:做填写表单信息提交的时候会碰到一个问题就是当用户填写并提
PHP实现清除wordpress里恶意代码 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例phpif(!isse
PHP 实现的将图片转换为TXT PHP实现的将图片转换为TXTphp/*年月日::*///打开一幅图像$file_name='d:ascii_dora.png';$chars="$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]-_+~i!lI;:,"^`'.";functio
标签: php mktime函数
本文链接地址:https://www.jiuchutong.com/biancheng/275335.html 转载请保留说明!友情链接: 武汉网站建设