解决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 相关文章推荐
linux下 C语言对 php 扩展
Dec 14 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
PHP实现的连贯操作、链式操作实例
Jul 08 PHP
PHP文件上传之多文件上传的实现思路
Jan 27 PHP
php连接微软MSSQL(sql server)完全攻略
Nov 27 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
php实现socket推送技术的示例
Dec 20 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
php7 新增功能实例总结
May 25 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
使用php实现截取指定长度
2013/08/06 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
2015/07/01 Javascript
javascript实现连续赋值
2015/08/10 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
Python 装饰器使用详解
2017/07/29 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python删除某个字符
2018/03/19 Python
PyQT实现多窗口切换
2018/04/20 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python脚本后台执行方式
2019/12/21 Python
深入了解Python enumerate和zip
2020/07/16 Python
德国家具在线:Fashion For Home
2017/03/11 全球购物
介绍一下如何优化MySql
2016/12/20 面试题
营业经理岗位职责
2013/11/10 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
双方协议书
2014/04/22 职场文书
2014年信用社工作总结
2014/11/25 职场文书