php发送邮件,标题是乱码,php的mail函数发送UTF-8编码中文邮件时标题乱码怎么办?...
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?' . base64_encode('标题文字') . '?=';
如果是UTF-8 的话,把上面开头的GB2312 替换成UTF-8 即可。推荐在标题处使用GB2312 编码,因为MTA 的分化实在是严重,大部分的MSP使用的都是自己开发的 MTA,而相信国内的大部分 MTA 无论如何都是可以支持 GB2312 编码的。
而如果是发送到国外的MSP,则推荐你在subject 处使用经过base64 编码的 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['Title']);
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$message = stripslashes(strip_tags($the_post['Content']));
mail($to, $subject, $message, $headers);
先用函数base64_encode()— 使用MIME base64 对数据进行编码
标题字符串前加编码类型例如: =?UTF-8?B?
标题字符串后加:?=
例如:<?php
$to = "clairelume@qq.com"; //将此电子邮件地址改为自己的。
$name = $_POST['name'];
$email = $_POST['email'];
$subject = "来自博客读者的邮件";
$subject = "=?UTF-8?B?".base64_encode($subject)."?=";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$message = $_POST['message'];
mail($to,$subject,$message,"From: ".$email."",$headers);
echo 'OK '.$name.', 您的邮件已发送。';
?>
这样,发送的中文邮件标题就不是乱码了。
php发送邮件,标题是乱码,php的mail函数发送UTF-8编码中文邮件时标题乱码怎么办?...相关推荐
- php调试代码时var_dump( )打印中文字符时出现乱码解决方案
php调试代码时var_dump( )打印中文字符时出现乱码解决方案 参考文章: (1)php调试代码时var_dump( )打印中文字符时出现乱码解决方案 (2)https://www.cnblog ...
- datax 导入数据中文乱码_四种方法处理MYSQL导入中文数据时的乱码问题 | 很文博客...
我是用的最后一种方法,前面三种解决MYSQL导入数据乱码的方法没试过,很文博客推荐大家直接使用第四种方法处理MYSQL导入中文数据时的乱码问题. 首先在新建数据库时一定要注意生成原数据库相同的编码形式 ...
- php title 乱码,PHP发送UTF-8编码中文邮件标题乱码的解决
当我们使用下面的PHP语句发送中文电子邮件的时候,会发现邮件的标题是乱码,而邮件正文却是正确的,如何才能使得邮件标题不是乱码呢? $subject = stripslashes($the_post[' ...
- c mysql 中文字符_在C#和MySQL中存取中文字符时避免乱码的方法
当用到socket来进行网络程序开发时,大多数情况下会遇到中文字符的发送与接收,这时若对发送的字符串用默认的方式进行处理,则一般会得到一堆乱码. 由于中文字符采用双字节表示,所以对含有中文的字符串的处 ...
- ftl转PDF服务器上中文不显示,解决Linux中swftools转换中文pdf时出现乱码问题
前段时间安装了swftools可以将pdf转换为swf文件,然后配合一个FlexPaper,就可以做成和百度图文库类似的东东了. 但是今天,我们开发的同事告诉我说pwd转换的这个会有乱码问题,我看了一 ...
- c# mysql 汉字乱码_在C#和MySQL中存取中文字符时避免乱码的方法
当用到socket来进行网络程序开发时,大多数情况下会遇到中文字符的发送与接收,这时若对发送的字符串用默认的方式进行处理,则一般会得到一堆乱码. 由于中文字符采用双字节表示,所以对含有中文的字符串的处 ...
- linux加载u盘乱码怎么转换,Linux系统下加载U盘设备时文件乱码的有效解决方法
很少情况会在Linux系统下使用U盘,但是最近有朋友在Linux系统下加载U盘设备的时候发现U盘内的文件出现了乱码现象,这该怎么办呢?很多朋友对Linux系统又不太熟悉,不知道该怎么操作,没关系,让小 ...
- 解决SendMessage函数向QQ好友发送中文消息时出现乱码
今天在回顾以前写的自动向qq好友发送消息的代码,发现设置好的中文消息发送后却成了乱码: 代码如图: 运行如图: 我百思不得其解 但想到之前是可以成功运行的,我便开始回忆我这期间是否改变某些项目设置 ...
- php 邮件乱码,解决PHP mail发送UTF-8中文邮件乱码
在这里,我将解决一个问题,也许很多人遇到过,困惑又不知道如何去做的问题. 如何发送中文邮件时没有乱码? 在这里我将告诉你如何发送UTF-8编码格式的中文电子邮件.本文不涉及GBK编码或者GB2312编 ...
最新文章
- 如何高效推进ML模型开发和部署?Uber机器学习平台Michelangelo实践
- Redis 日志篇:无畏宕机快速恢复的杀手锏
- Docker将镜像上传至私有仓库
- uwsgi+nginx部署django项目(有图原理的详细展示的)
- python7.1处理异常
- 网络编程—网络基础概览、socket,TCP/UDP协议
- 《操作系统真象还原》-阅读笔记(上)
- node服务器中打开html文件的两种方法
- mysql数据库存储多语言_数据库---数据控制语言(DCL)
- 新手如何检查MacBook电池的运行状况
- 利用Quartus-II进行仿真实验
- 第十二课,assimp模型加载(数据加载篇)
- SQL查询结果根据汉字拼音排序
- PVE系列教程(十五)、安装Windows10系统(专业版、企业版、家庭版通用)
- h5物体拖动_iH5高级教程:H5交互进阶,拖动物品效果
- 商业银行合规管理用OA:“上报、评估、整改、分析”全面数字化
- c语言error语句错误,【资料】C语言错误信息中文解释
- Quartz框架介绍
- git问题:head detached at xxxx
- 极验验证的滑动验证码破解
热门文章
- python 坐标轴刻度_给妹子讲python-S02E08坐标轴与主次刻度
- 2020-10-13 多智能体基本图论
- EducationalCodeforcesRound62(Div. 2)(A-D题解)
- HDU 2833 WuKong
- Webshell免杀绕过waf
- Mysql查看状态,连接数,线程数以及Mysql性能监控工具doDBA的使用以及优化
- Nginx Mac笔记
- python框架之Django(2)-简单的CRUD
- 如何打开.etl文件?
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误