解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题


Posted in PHP onMarch 13, 2009
// multiple recipients 
$to = 'aidan@example.com' . ', '; // note the comma 
$to .= 'wez@example.com'; 
// subject 
$subject = 'Birthday Reminders for August'; 
// message 
$message = ' 
<html> 
<head> 
<title>Birthday Reminders for August</title> 
</head> 
<body> 
<p>Here are the birthdays upcoming in August!</p> 
<table> 
<tr> 
<th>Person</th><th>Day</th><th>Month</th><th>Year</th> 
</tr> 
<tr> 
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td> 
</tr> 
<tr> 
<td>Sally</td><td>17th</td><td>August</td><td>1973</td> 
</tr> 
</table> 
</body> 
</html> 
'; 
// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
// Additional headers 
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n"; 
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n"; 
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n"; 
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n"; 
// Mail it 
mail($to, $subject, $message, $headers);

查看sendmail的maillog,发现奇怪的内容。
Mar 1 11:28:03 <a title="shaohui" href="http://www.shaohui.org" target="_blank">shaohui</a>.org sendmail[27526]: n213S1Xc027524: to=<shaohui_1983@163.com>, ctladdr=<shaohui@shaohui.org> (500/500), delay=00:00:02, xdelay=00:00:01, mailer=esmtp, pri=150812, relay=163mx03.mxmail.netease.com. [220.181.12.72], dsn=5.0.0, stat=Service unavailable

但是,如果我使用Linux Shell 的mail命令是可以发送成功的,不过多加了一条-f 参数伪造发件人。这是唯一的不同,于是maillog 的其中一个字段ctladdr显示也不一样。不再是apache用户,我怀疑163等国内的邮件服务提供商,把所有的apache的用户的邮件当成垃圾邮件处理掉了。
Feb 25 23:44:59 <a title="shaohui" href="http://www.shaohui.org" target="_blank">shaohui</a> sendmail[13067]: n1PFixH4013067: to=shaohui_1983@163.com, ctladdr=contact@shaohui.org (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30869, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (n1PFixdx013068 Message accepted for delivery)

根源找到,于是问题就很好解决了,查一下php的手册,发现mail函数原来也是可以伪造发件人的。
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

在第六个参数additional_parameters使用额外的参数"-f sender_addr@mydomain.com", 问题就解决了。
PHP 相关文章推荐
关于页面优化和伪静态
Oct 11 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
Jun 03 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
PHP实现简单汉字验证码
Jul 28 PHP
为你总结一些php系统类函数
Oct 21 PHP
Thinkphp单字母函数使用指南
May 08 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
PHP高效获取远程图片尺寸和大小的实现方法
Oct 20 PHP
实例讲解php实现多线程
Jan 27 PHP
在Laravel 中实现是否关注的示例
Oct 22 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 PHP
PHP 文件类型判断代码
Mar 13 #PHP
php discuz 主题表和回帖表的设计
Mar 13 #PHP
php 获取mysql数据库信息代码
Mar 12 #PHP
php 删除记录实现代码
Mar 12 #PHP
php 异常处理实现代码
Mar 10 #PHP
php 表单数据的获取代码
Mar 10 #PHP
php URL编码解码函数代码
Mar 10 #PHP
You might like
玩转虚拟域名◎+ .
2006/10/09 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
javascript读取xml
2006/11/04 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
python Django连接MySQL数据库做增删改查
2013/11/07 Python
用Python编程实现语音控制电脑
2014/04/01 Python
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
跟老齐学Python之print详解
2014/09/28 Python
Python中装饰器高级用法详解
2017/12/25 Python
python实现媒体播放器功能
2018/02/11 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
python实现学员管理系统
2019/02/26 Python
简单了解python单例模式的几种写法
2019/07/01 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
行政专员岗位职责说明书
2014/07/30 职场文书
三方协议书
2015/01/27 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android
MySql分区类型及创建分区的方法
2022/04/13 MySQL
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang