我正在使用mail()发送简单的邮件。为方便起见,我使用标题来设置“发件人”地址。我想知道,我可以把那里的任何一个地址都假装成任何人;我只是为了好奇而努力,实际上它有效!这是正常的吗?这是使用邮件功能的正确方法吗?有没有办法识别这些邮件发件人的身份?
编辑: 我使用我的Gmail地址作为邮件()标题中的“发件人”向我自己发送了一封邮件。我收到了带有这些标题的消息:
…
Received: from smarty.dreamhost.com (smarty.dreamhost.com [208.113.175.8]) by mx.google.com with ESMTP id w21si2197938ybh.68.2010.10.19.19.33.30; Tue, 19 Oct 2010 19:33:30 -0700 (PDT)
Received: from nationals.dreamhost.com (nationals.dreamhost.com [69.163.165.6]) by smarty.dreamhost.com (Postfix) with ESMTP id EB56D6E804A for <myMail@gmail.com>; Tue, 19 Oct 2010 19:33:29 -0700 (PDT)
Received: by nationals.dreamhost.com (Postfix, from userid 3598506) id E4BB635C83F; Tue, 19 Oct 2010 19:33:29 -0700 (PDT)
Return-Path: <mySite@nationals.dreamhost.com>
Received-Spf: pass (google.com: domain of mySite@nationals.dreamhost.com designates 208.113.175.8 as permitted sender) client-ip=208.113.175.8;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of mySite@nationals.dreamhost.com designates 208.113.175.8 as permitted sender) smtp.mail=mySite@nationals.dreamhost.com
发生了什么?我无法解释标题,但看起来谷歌接受了假地址!
答案 0 :(得分:6)
欢迎使用SMTP。
一直以来,您可以在您选择的电子邮件中添加任何发件人地址,就像您可以在您选择的实际信件上放置任何退货地址一样。
为了扩展这个比喻,验证一封信是由某个人邮寄的唯一方法是查看其他细节,例如邮戳;同样,关于谁发送电子邮件的唯一真实线索是邮件服务器添加的附加标题,以识别最后一个服务器触摸邮件的方式。
故事的寓意:永远不要相信来自地址;安全性从未成为电子邮件系统的预期功能。正如Vint Cerf最近所说的我们现有的互联网协议:“我们从来没有打算让这些东西出去。”
答案 1 :(得分:1)
是的,这是可能的。如果您发送的电子邮件来自未解析到电子邮件的IP的域,则您更有可能将服务器的IP列入黑名单,并将邮件标记为垃圾邮件。
一次愚人节开玩笑,我玩得很开心......
不要经常这样做,否则你冒黑名单的风险。我不确定追溯它,但我认为它应该是可行的。
答案 2 :(得分:1)
是的,from标题只是一个标题,任何人都可以声称是使用电子邮件的任何人。但是,大多数邮件服务器会将发送服务器的IP地址与来自电子邮件地址的DNS MX记录不匹配的任何内容视为垃圾邮件