2012-01-27 150 views
2

可能重复:
how to confirm email source如何确认收到的电子邮件的发件人?

我想知道怎么做电子邮件服务如Hotmail和雅虎证实,“从”头没有被欺骗。我的意思是,你没有试图代表其他人发送电子邮件。

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

Facebook(和其他服务)做什么来确认?

请注意,扩展名([email protected])不适用于我。我的想法是模拟与Facebook邮件支持电子邮件类似的东西。

我相信只是检查标题是不够的。我想我必须检查DNS/SPF的内容,但我不知道该怎么做,甚至要做什么。

这将帮助我分配,如果你可以指示我一些“算法”(优先在PHP)与步骤来检查欺骗。谢谢!

回答

1

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

+0

我明白了。但是,是否允许IP欺骗?我的意思是,你使用SPF记录中包含的一种欺骗“From”并欺骗IP。谢谢。 – Nuno 2012-01-27 13:54:03

+1

一般来说,你不能在TCP连接上欺骗你的IP地址 - 你连接的服务器必须知道真正的IP地址来发回它的一半连接。 – jcoder 2012-01-27 13:59:20

+0

啊!那很好。所以我需要在我的php脚本中做的是检查IP并查看它是否列在From域的SPF记录中,这就是全部?请跟我确认一下。谢谢你的有用答案! – Nuno 2012-01-27 14:05:53

1

正如Oldskool所建议的,SPF是一种广泛用于检测伪造From(和回复)地址的方法 - 但是大多数电子邮件提供商使用更大范围的检查来隔离来自火腿的垃圾邮件。

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

+0

所以,我现在好奇。如果我的cPanel有Spamassassin,我可以直接从那里直接自动删除“无效”消息,这样我就不必担心检查管道邮件的PHP部分了吗?或者,这不是一个好主意(甚至可能)吗?谢谢! – Nuno 2012-01-27 14:55:28

+0

否 - 您想保留和管理您的垃圾邮件以训练贝叶斯过滤器。 – symcbean 2012-01-30 08:59:18