5

SPF 一直困扰着我,为什么它不验证 From 标头?

据我了解,SMTP 服务器将 SPF 验证 MAIL FROM 或 ENVELOPE FROM SMTP 命令期间提供的主机名(我的示例是从 telnet'ing 到 gmail-smtp-in.l.google.com:

MAIL FROM:<matt@example.com>

然后,Gmail 会做它的事情,确保我的 example.com 的 SPF 记录允许我的 IP 用于发送。但是这似乎是失败的地方,我不能只注册一个域,为我的 IP 正确设置我的 TXT 和 SPF 记录,然后发送吗?完整示例:

$ telnet gmail-smtp-in.l.google.com 25
Trying 173.194.68.27...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP m6si2285029qao.20 - gsmtp
HELO ec2-23-22-210-XXX.compute-1.amazonaws.com
250 mx.google.com at your service
MAIL FROM:<matt@ec2-23-22-210-XXX.compute-1.amazonaws.com>
250 2.1.0 OK m6si2285029qao.20 - gsmtp
RCPT TO:<(a real gmail address)@gmail.com>
250 2.1.5 OK m6si2285029qao.20 - gsmtp
DATA
354  Go ahead m6si2285029qao.20 - gsmtp
From: "Litmus" <hello@litmus.com>
To: <anybody@example.com>   
Subject: Welcome to Litmus!
Date: Thu, 27 June 2013 16:24:30 -0500

Welcome!
.
250 2.0.0 OK 1372363723 m6si2285029qao.20 - gsmtp
QUIT
221 2.0.0 closing connection m6si2285029qao.20 - gsmtp
Connection closed by foreign host.

检查来自 gmail 的标题显示:

Received-SPF: pass (google.com: best guess record for domain of matt@ec2-23-22-210-XXX.compute-1.amazonaws.com designates 23.22.210.XXX as permitted sender) client-ip=23.22.210.XXX;

查看 Sparrow 中的消息:

显示来自地址的电子邮件

我认为 SPF 的目的是帮助保护我的域(作为发件人)免受欺骗?但是,如果发件人正确配置了 SPF(不是很难或做起来很昂贵——我只是用上面的免费微型 ec2 实例做到了),那么它似乎不适用?

我确实注意到 Gmail 在我执行的 5 次测试中有 4 次将我的邮件放入垃圾邮件中,但我认为这是因为 EC2 IP 的声誉?还是我缺少关于 Gmail 正在接受的 SPF 的一些东西?

我错过了什么?

4

3 回答 3

1

这听起来可能很循环。这是因为无法以您描述的方式验证 From 标头。

SPF 并非旨在以这种方式验证标题行。

您必须接受 From: 行,这取决于电子邮件作者的心血来潮。

请记住,即使电子邮件地址本身是受信任的,许多客户也只显示引号中的内容。在这两种情况下,他们会很容易地展示作曲家想要什么:

From: "night" <day@example.com>
From: "day" <day@example.com>

我觉得这太自由了吗?是的。SPF有什么可以做的吗?不。

DKIM 可能是您正在寻找的,它专注于标头验证。

于 2014-02-07T11:53:55.727 回答
0

除非您的 SPF 记录设置正确,否则 SPF 记录可能会被欺骗,即您的记录设置为硬失败 -all

不幸的是,大多数人将他们的 SPF 记录设置为软失败,正如您所描述的,这允许您欺骗电子邮件地址

看看http://workaround.org/ispmail/lenny/spf

于 2013-06-27T20:49:22.617 回答
0

我认为没有办法阻止这种情况(我从其他帖子中得到了答案)。

否则,网络生成的电子邮件将无法工作。您可以看到evite.com 和 egreetings.com的示例

于 2013-11-03T17:19:01.413 回答