用任意自定义邮箱地址发送邮件!

【文章作者】: 暗黑破坏猫 【撰写时间】: 5:07 pm

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


这是Google公司给我发的邮件吗??? 当然不是... 这是我自己伪造的... 其实只要你安装了SMTP服务, 你想伪装成什么邮箱地址都没问题... 这个截图是是前几天在解决WordPress无法发送评论通知的问题时, 用测试PHP发送邮件功能的一个页面发的. 现在想了想... 可能会有人对这个很好奇, 于是那个测试页面我没有删除, 并且简单的改了改, 现在这个页面能够让访问者自己任意定义邮箱地址来发送邮件了.发送邮件的页面地址在这里. 对此有兴趣的朋友可以尝试一下~ :) 不过如果你伪装成@Google.com的邮箱发送给GMAIL的收件人, 有可能邮件被判断为垃圾邮件... 所以你可以伪装成别的域试试... 经过测试, 伪装成@microsoft.com的邮件都可以顺利发送到GMAIL的收件箱. 呵呵... :P

另外, 目前我的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, 垃圾邮件, 学习, 源代码

相关文章

下一篇:搬家不到一周, 出现了13种屏幕分辨率...

上一篇:恭贺新年!
收藏: 分享到饭否
分类: 学习, 网络
作者: 暗黑破坏猫

Firefox 3

11条评论»

(经常评论有益身体健康, 我试过, 很灵的!)

  • 11
    【访客】:大猫
    【日期】:2008.04.14 星期一
    【时间】:1:44 pm   

    哇,好神奇~非常感谢
    原来mail()直接能调用了....

    [回复]


  • 10
    【访客】:戴耳钉的猫
    【日期】:2008.03.05 星期三
    【时间】:9:31 pm   

    瀑布汗了...............
    竟然发现有人用这个来行骗.......
    真是... 唉.... 服了....
    这个程序被撤下了... 不再开放了... 太多鸟人了...

    [回复]


  • 9
    【访客】:xingxing
    【日期】: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
    【访客】:Yanyan
    【日期】: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
    【访客】:Jonchil
    【日期】:2008.02.05 星期二
    【时间】:11:16 pm   

    额,看到这个页面我第一个想法就是用admin@QQ.com给人发邮件,内容就说验证QQ密码保护资料- -||

    貌似伪装性相当大的说

    [回复]


  • 3
    【访客】:戴耳钉的猫
    【日期】:2008.02.05 星期二
    【时间】:8:51 pm   

    @keith

    好的, 稍后就把源码放上...
    @PS: 那个蝴蝶眼熟吗? 哈哈... Photoshop里面有这个画笔图案哦~ :P

    [回复]


  • 2
    【访客】:星遗
    【日期】:2008.02.05 星期二
    【时间】:8:30 pm   

    强悍

    [回复]


  • 1
    【访客】:keith
    【日期】:2008.02.05 星期二
    【时间】:8:22 pm   

    终于知道别人怎么糊弄我的了: 我给他分配email地址不好好用,非弄个很花哨的地址发来发去,由于不知道怎么回事,没好意思问他.

    我想看你的用php使用smtp服务的源代码,当然网上有很多,但我想看看你的.

    ps: 首页上带蝴蝶的图很好看,我好像在哪见过.

    [回复]


评论 RSS Feed。  引用 URL

※请注意:
1、为了避免垃圾评论, 请在点击“发表评论”按钮前回答一道简单的数学题。
2、如果你的留言中包含2个以上链接, 那么这条评论将会被列入审核列队, 暂时不会在文章下显示出来.


除非另有声明, 本站使用创作公用许可协议授权.
创作共用(署名,非商业性使用,相同方式共享) by 妖精之翼 超店长: 暗黑破坏猫