解决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实现mysql数据库备份类
Mar 20 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
php中通过Ajax如何实现异步文件上传的代码实例
May 07 PHP
pdo中使用参数化查询sql
Aug 11 PHP
php中substr()函数参数说明及用法实例
Nov 15 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
php实现微信公众平台账号自定义菜单类
Dec 02 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
php通过文件头判断格式的方法
May 28 PHP
详解PHP数据压缩、加解密(pack, unpack)
Dec 17 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
is_file和file_exists效率比较
Mar 14 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动态输出JavaScript代码实例
2015/02/12 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
复制本贴标题和地址的js代码
2008/07/01 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
Python中for循环和while循环的基本使用方法
2015/08/21 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
Python面向对象类的继承实例详解
2018/06/27 Python
python实现推箱子游戏
2020/03/25 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
美国现代家具购物网站:LexMod
2019/01/09 全球购物
付款委托书范本
2014/04/04 职场文书
公司承诺书范文
2014/05/19 职场文书
开工仪式策划方案
2014/05/23 职场文书
学校三节实施方案
2014/06/09 职场文书
学校清明节活动总结
2014/07/04 职场文书
学生病假条范文
2015/08/17 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers