2

可能重复:
如何确认电子邮件来源

我想知道 Hotmail 和 Yahoo 等电子邮件服务如何确认“发件人”标头没有被欺骗。我的意思是,您没有尝试代表其他人发送电子邮件。

我现在试图欺骗 Facebook 消息,使用 php 脚本向我的@facebook.com 电子邮件发送电子邮件,欺骗“发件人”。我代表那个朋友帐户收到了它。但是,提示“无法确认--朋友姓名--作为发件人”。出现了。

Facebook(和其他服务)如何确认这一点?

请注意,扩展名 (emailname+extension@mydomain.com) 对我不起作用。我的想法是模拟类似于 Facebook Messages 对电子邮件的支持。

我相信仅仅检查标题是不够的。我想我必须检查 DNS/SPF 的东西,但我不知道该怎么做,甚至不知道该怎么做。

如果您可以向我指出一些“算法”(最好在 php 中)以及检查欺骗的步骤,这将有助于我分配。谢谢!

4

2 回答 2

1

作为域所有者,您可以在您的 DNS 区域中实施SPF 。它允许您设置允许代表您的域发送邮件的服务器的 IP 地址。如果另一个 IP 尝试以您的域名作为发件人发送邮件,它将被任何检查 SPF 的邮件服务器拒绝(幸运的是,越来越多的人开始这样做了!)。从来没有硬性保证没有人会以您的名义发送欺骗性邮件,但这会大大降低这种可能性。

于 2012-01-27T13:51:01.420 回答
1

正如 Oldskool 所建议的那样,SPF 是一种广泛使用的检测伪造的发件人(和回复)地址的方法 - 但是大多数电子邮件提供商使用更广泛的检查来将垃圾邮件与火腿分开。

Spamassassin是一个开源项目,提供一个管理程序和一组插件(以及一个用于开发您自己的 API),包括用于验证电子邮件的 SPF。

于 2012-01-27T14:44:12.663 回答