通过 SPF 验证电子邮件

Posted

技术标签:

【中文标题】通过 SPF 验证电子邮件【英文标题】:Authenticate Email VIA SPF 【发布时间】:2018-08-15 13:01:23 【问题描述】:

好吧,我想不通。我正在使用 phpMailer 从我的域(example.com)向我自己发送一封电子邮件。我正在向自己发送电子邮件。(测试 google 架构标记),但电子邮件未经过身份验证。 这是我用来向自己发送电子邮件的代码。

$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = 'tls://smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';      
$mail->Username = 'myemail@gmail.com';
$mail->Password = '';
$mail->setFrom('myemail@gmail.com');
$mail->addAddress('myemail@gmail.com');

$mail->Subject = 'Microdata Test';
$html = '
<html>
    <head>
        <script type="application/ld+json">
        
            "@context":       "http://schema.org",
            "@type":          "EmailMessage",
            "description":    "Check this out",
            "potentialAction": 
                "@type": "ViewAction",
                "target":   "https://www.youtube.com/watch?v=eH8KwfdkSqU"
                
        
        </script>
    </head>
    <body>
    <p>
        This a test for a Go-To action in Gmail.
    </p>
    </body>
</html>
';

$mail->msgHTML($html);
$mail->send();

这是我的 spf 记录:

v=spf1 a mx include:mailgun.org include:mydomain.com ~all

【问题讨论】:

SPF 只是域反欺骗机制。您是否尝试将 DKIM 记录添加到您的 DNS 中? 我的目标是只使用 SPF。我的理解是足够了。 您无法停止仅使用 SPF 进行欺骗。使用 spf 中的 hardfail,您最多可以将其发送到垃圾邮件。如果您想阻止它发送垃圾邮件,那么唯一的方法是使用所有 SPF、DKIM 和特别是 DMARC,策略为 reject 【参考方案1】:

由于您使用 Google 的 smtp 发送电子邮件,因此您必须将其包含在您的 SPF 中:

include:_spf.google.com

【讨论】:

这就是我的 SPF 记录现在的样子: v=spf1 a mx include:mailgun.org include:mydomain.com include:_spf.google.com ~all 刚刚尝试发送另一封电子邮件,然后结果是一样的。【参考方案2】:

您正在通过 SMTP 从您的主机发送到 google。这意味着 Google 会查看您的主机是否在您的 SPF 记录中并采取相应措施

因此,您必须在 SPF 记录中包含您的公共 ip 并祈祷这样就足够了。

另外,您的用户名是 myemail 而不是 myemail@gmail.com。当然,密码应该是真正的密码。

如果不起作用,请查阅 PHPMailer 日志,应该有更多提示。

【讨论】:

我添加了域公共地址,现在我的记录看起来像 v=spf1 a mx include:xx.xx.xx.xx include:mailgun.org include:domain.com include:_spf.google。 com~所有。我尝试发送另一封电子邮件,但仍未通过身份验证。 要引用 IP 地址,请将 include:xx.xx.xx.xx 替换为 ip4:xx.xx.xx.xx

以上是关于通过 SPF 验证电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

使用谷歌应用程序更正 SPF 记录

通过 Mandrill 发送 Gmail - 电子邮件延迟

标记为垃圾邮件的电子邮件 - SPF 通行证、DKIM 通行证、发件人 ID 通行证

邮件安全之SPF记录详解

电子邮件不会到达常见的收件箱

如何保证邮件系统的安全?