解决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 相关文章推荐
支持oicq头像的留言簿(二)
Oct 09 PHP
Win2003服务器安全加固设置--进一步提高服务器安全性
May 23 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
PHP中array_merge和array相加的区别分析
Jun 17 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
常见php数据文件缓存类汇总
Dec 05 PHP
PHP面向对象程序设计实例分析
Jan 26 PHP
CI映射(加载)数据到view层的方法
Mar 28 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
PHP使用DOM对XML解析处理操作示例
Jul 04 PHP
Laravel框架创建路由的方法详解
Sep 04 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中一个控制字符串输出的函数
2006/10/09 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
Django如何将URL映射到视图
2019/07/29 Python
python批量修改文件名的示例
2020/09/27 Python
三八妇女节超市活动方案
2014/08/18 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
见习报告怎么写
2014/10/31 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
生产实习心得体会范文
2016/01/22 职场文书
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
JavaScript的function函数详细介绍
2021/11/20 Javascript