解决 PHP 的 mail() 发送邮件时出现乱码的问题
2015-07-31 11:23
851 查看
原文地址:http://www.cmhello.com/php-mail-garbled.html
当用php的mail()函数发送邮件时,如果包含中文,标题产生乱码,需要做以下处理即可解决:
先用函数base64_encode() — 使用 MIME base64 对标题数据进行编码
标题字符串前加编码类型例如: =?UTF-8?B?
标题字符串后加:?=
例如:
这样就不会乱码了。
对应的,邮件的header可以简单设置一下,以下举例说明发送一封邮件:
当用php的mail()函数发送邮件时,如果包含中文,标题产生乱码,需要做以下处理即可解决:
先用函数base64_encode() — 使用 MIME base64 对标题数据进行编码
标题字符串前加编码类型例如: =?UTF-8?B?
标题字符串后加:?=
例如:
1 2 | $subject = '邮件标题中文-php-mail()函数'; $subject = "=?UTF-8?B?".base64_encode($subject)."?="; |
对应的,邮件的header可以简单设置一下,以下举例说明发送一封邮件:
1 23 | $mail = 'digdeeply@staff.sina.com.cn'; $text = "邮件正文content……"; $subject = 'IVR 内置控制平台定时脚本运行SQL错误'; $subject = "=?UTF-8?B?".base64_encode($subject)."?="; $headers = 'From: You <digdeeply@staff.sina.com.cn>' . "\n"; $headers .= 'MIME-Version: 1.0' . "\n"; $headers .= 'Content-type: text/html; charset=uft-8' . "\r\n"; $headers .="Content-Transfer-Encoding: 8bit"; mail($mail, $subject, $text, $headers ); |
相关文章推荐
- thinkphp
- PHP 前加at符合@的作用解析
- utf-8内繁简体转换
- PHP查看当前变量类型的方法
- 时间服务器:NTP
- 如何把php5.3版本升级到php5.4或者php5.5
- FragmentPagerAdapter的工作流程(二)
- PHP对字符的递增运算
- PHP内核探索:哈希表碰撞攻击原理
- 关于Thinkphp的日志写入
- _sntprintf
- TP:249B6935
- 如何使用纯PHP实现定时器任务(Timer)
- PHP输出xls文件
- php常量 DIRECTORY_SEPARATOR 和 PATH_SEPARATOR
- ThinkPHP创建应用的一般开发流程及实例 .
- php 计算两点地理坐标的距离
- php根据地理坐标获取国家、省份、城市,及周边数据类
- PHP中global关键字和$GLOBALS用法
- 如何使用纯PHP实现定时器任务(Timer)