通过SPF SPF验证电子邮件

时间:2018-03-07 12:13:55

标签: php gmail schema tls1.2 spf

好的,我无法弄清楚这一点。我正在使用PHPMailer从我的域发送电子邮件 - example.com给自己。我正在给自己发送电子邮件。(测试谷歌架构标记),但电子邮件未经过身份验证。 这是我用来向自己发送电子邮件的代码。

$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

2 个答案:

答案 0 :(得分:0)

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

include:_spf.google.com

答案 1 :(得分:0)

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

所以,你必须在SPF记录中包含你的公共IP,并祈祷这就足够了。

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

如果无效,请参阅PHPMailer日志,应该有更多提示。