解决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 相关文章推荐
如何在PHP中使用Oracle数据库(1)
Oct 09 PHP
聊天室php&amp;mysql(六)
Oct 09 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
PHP源码之explode使用说明
Aug 05 PHP
如何使用Strace调试工具
Jun 03 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
支持png透明图片的php生成缩略图类分享
Feb 08 PHP
PHP常用设计模式之委托设计模式
Feb 13 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 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
PHP新手入门学习方法
2011/05/08 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
Python下singleton模式的实现方法
2014/07/16 Python
Python定时执行之Timer用法示例
2015/05/27 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
Python实现分段线性插值
2018/12/17 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
python操作cfg配置文件方式
2019/12/22 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
浅谈Python中的继承
2020/06/19 Python
物业公司的岗位任命书
2014/06/06 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
2014公司年终工作总结
2014/12/19 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书
导游词之西安骊山
2019/12/20 职场文书
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server