Feb
2008
用任意自定义邮箱地址发送邮件!
以前在NEWS以及后来在Gfans里面, 经常有人问道, 收到自己给自己发的垃圾邮件, 很是奇怪, 其实... 那些邮箱都是垃圾邮件发送端伪造的假象. 伪造成收件人自己给自己发的邮件, 最主要的目的我猜也就是尽量避免给收件人的邮件过滤规则过滤. 其实不仅仅邮箱名, 连邮箱域在内(邮箱@后面的后缀部分), 整个邮箱地址都是可以伪造的.
看一下下面的截图, 你就会明白了...

这是Google公司给我发的邮件吗??? 当然不是... 这是我自己伪造的... 其实只要你安装了SMTP服务, 你想伪装成什么邮箱地址都没问题... 这个截图是是前几天在解决WordPress无法发送评论通知的问题时, 用测试PHP发送邮件功能的一个页面发的. 现在想了想... 可能会有人对这个很好奇, 于是那个测试页面我没有删除, 并且简单的改了改, 现在这个页面能够让访问者自己任意定义邮箱地址来发送邮件了.发送邮件的页面地址在这里. 对此有兴趣的朋友可以尝试一下~
另外, 目前我的SMTP服务并没有设置身份验证, 所以如果你需要一个不需要身份验证的SMTP服务器, 那么是可以使用的, 但! 我不希望我的服务器被滥用... 也就是, 一旦发现有任何发送垃圾邮件的行为. 我会立刻停止对外的SMTP服务. 恩... 就是这些...
Update: 应keith兄的要求, 现在把把源代码放上来. 为了节省文章的篇幅, 源码中去掉了与程序无关的大部分HTML标记语言以及CSS的定义部分. 为了方便更多人理解, 另外加了一些注释. sentmail.html 及 mail.php 的源代码如下:
mail.php 文件源码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>以自定义邮箱地址发送邮件 - by 猫饭店 http://www.newchen.com</title>
</head>
<body><?php
// 获取sentmail.html表单中的数据
$fname=$_POST['fname'];
$name=$_POST['name'];
$email=$_POST['from'];
$remail=$_POST['remail'];
$text=$_POST['text'];
$to = $_POST['to'];
$sub = $_POST['sub'];
$from = "From: ".$name."<".$email.">\r\nReply-To: ".$remail;// 将获取到的数据以及文字放入正文 $mail 中.
$mail = $fname.',您好。'."\n".'您的朋友 '.$name.' '.$remail.' 向您发送了邮件,以下是邮件正文:'."\n\n".$text."\n\n\n".'此邮件发送服务由 猫饭店(http://www.newchen.com) 提供,如您发现此服务被滥用,请立即与 猫饭店 联系。谢谢!';// 递交表单后的条件选择语句, 这里除了 $remail 以外的所有内容必须填写, 否则不继续执行 mail()
if($to==NULL)
echo('请填写收件人邮箱地址');
else if ($fname==NULL)
echo('请填写收件人名字');
else if ($name==NULL)
echo('请填写你的名字');
else if ($email==NULL)
echo('请填写你的邮箱地址');
else if ($text==NULL)
echo('请填写你想说的话');
else if ($from==NULL)
echo('请填写你的邮箱地址');
else if ($sub==NULL)
echo('请填写邮件标题');// 所有 if else 条件满足后, 执行 mail() 发送邮件并输出成功提示.
else
{
mail($to, $sub, $mail, $from);
echo ('恭喜!! 邮件已经成功发送至〖'.$to.'〗');
}
?>
</body>
</html>
sentmail.html 文件源码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>以自定义邮箱地址发送邮件 - by 猫饭店 http://www.newchen.com</title>
</head>
<body><!-- 创建表单, 并创建所需数据输入框 -->
<form action="mail.php" method="post">
收件人的名字:<br />
<label>
<input name="fname" type="text" id="fname" size="40" />
</label>
<br />
收件人的邮箱:<br />
<label>
<input name="to" type="text" id="to" size="40" />
</label>
<br />
你的名字:<br />
<input type="text" name="name" size="40" />
<br />
你的邮箱:<br />
<input name="from" type="text" id="from" size="40" />
<br />
回信邮箱:<br />
<label>
<input name="remail" type="text" id="remail" value="你希望收件人的回信发送到哪个邮箱(可选)" size="40" />
</label>
<br />
邮件标题:<br />
<label>
<input name="sub" type="text" id="sub" size="40" />
</label>
<br />
想说的话:<br />
<textarea name="text" cols="40" rows="10" id="text">
</textarea>
<br />
<input name="submit" type="submit" value="猛击发送邮件!" />
</form>
<!-- 表单结束 --><p align="center">创作公用 by 戴耳钉的猫</p>
</body>
</html>
OK, 就是这些了...
当然, 要使 mail() 函数生效, 你的服务器上要有SMTP服务, 并且正确设置好了php.ini文件才行.
------ by: 超级憎恨垃圾邮件的戴耳钉的猫
标签: Email, php, SMTP, WordPress, 垃圾邮件, 学习, 源代码相关文章




















第11楼
【日期】:2008.04.14 星期一
【时间】:1:44 pm
哇,好神奇~非常感谢
原来mail()直接能调用了....
[回复]
第10楼
【日期】:2008.03.05 星期三
【时间】:9:31 pm
瀑布汗了...............
竟然发现有人用这个来行骗.......
真是... 唉.... 服了....
这个程序被撤下了... 不再开放了... 太多鸟人了...
[回复]
第9楼
【日期】:2008.02.18 星期一
【时间】:12:31 pm
查看信头就很容易知道这个邮件时假的,并且SPF记录也没有通过。
Received-SPF: fail (google.com: domain of Admin@localhost.com does not designate 218.25.87.68 as permitted sender) client-ip=218.25.87.68;
Authentication-Results: mx.google.com; spf=hardfail (google.com: domain of Admin@localhost.com does not designate 218.25.87.68 as permitted sender) smtp.mail=Admin@localhost.com
[回复]
第8楼
【日期】:2008.02.06 星期三
【时间】:12:15 pm
@Yanyan
哈哈... 谢谢Yanyan姐, 过年好!过年好~
[回复]
第7楼
【日期】:2008.02.06 星期三
【时间】:11:55 am
拜年拜年咯~~~祝猫猫新一年里事事顺心如意,天天开心如鼠~~哈哈!!! 另外,谢谢猫猫帮俺辛苦做新BLOG~~~~ ^_^
[回复]
第6楼
【日期】:2008.02.05 星期二
【时间】:11:24 pm
其实当时想到为了避免一些意外发生, 所以在邮件结尾加了" 此邮件发送服务由 猫饭店(http://www.newchen.com) 提供,如您发现此服务被滥用,请立即与 猫饭店 联系。谢谢!"这样一段话... 不过在做这个页面的时候还真是没想到忽悠QQ用户... 呵呵... 难道是我太正直了? 可能是因为我太讨厌腾讯吧!? 呵呵...
[回复]
第5楼
【日期】:2008.02.05 星期二
【时间】:11:20 pm
@jonchil
汗... 那也要伪装 @tencent.com 这个域啊... 伪装 @QQ.com 多假啊... 呵呵...
(这算教唆吗? 呵呵...)
[回复]
第4楼
【日期】:2008.02.05 星期二
【时间】:11:16 pm
额,看到这个页面我第一个想法就是用admin@QQ.com给人发邮件,内容就说验证QQ密码保护资料- -||
貌似伪装性相当大的说
[回复]
第3楼
【日期】:2008.02.05 星期二
【时间】:8:51 pm
@keith
好的, 稍后就把源码放上...
@PS: 那个蝴蝶眼熟吗? 哈哈... Photoshop里面有这个画笔图案哦~
[回复]
第2楼
【日期】:2008.02.05 星期二
【时间】:8:30 pm
强悍
[回复]
第1楼
【日期】:2008.02.05 星期二
【时间】:8:22 pm
终于知道别人怎么糊弄我的了: 我给他分配email地址不好好用,非弄个很花哨的地址发来发去,由于不知道怎么回事,没好意思问他.
我想看你的用php使用smtp服务的源代码,当然网上有很多,但我想看看你的.
ps: 首页上带蝴蝶的图很好看,我好像在哪见过.
[回复]