我在 CentOS 服务器上建立了一个网站,上面有一个联系表单,用于向 gmail 地址发送邮件。
然而该邮件被谷歌阻止,并出现以下错误:
Diagnostic-Code: smtp; 550-5.7.1 This message does not have authentication
information or fails to pass
550-5.7.1 authentication checks. To best protect our users from spam, the
550-5.7.1 message has been blocked. Please visit
550-5.7.1 https://support.google.com/mail/answer/81126#authentication for more
550 5.7.1 information. q16si15869511wrs.198 - gsmtp
hotmail邮箱可以收到邮件,但是却被归为垃圾邮件。
我不确定如何验证该消息,我已阅读此页面: https://support.google.com/mail/answer/81126#authentication
这意味着添加 mx 记录,但是域上已经有 Gsuite 电子邮件的 mx 记录。
有人能建议如何解决这个问题吗?
答案1
您可能发送带有“发件人:”地址的邮件,其域名已经要求存在 DKIM 数字签名,和/或仅从 SPF 白名单服务器发送消息。
确保网络服务器仅通过域的邮件服务器发送消息,而不是直接发送。例如,如果您尝试使用“发件人:[…]@gmail.com”,则必须通过 smtp.gmail.com:587 提交邮件(并使用相应的 Gmail 帐户的登录详细信息)。
类似地,如果您使用自己的域但由 Google Apps(G Suite)管理,那么您可能已经根据 Google 的说明配置了 SPF/DKIM/DMARC 记录 - 这意味着您现在必须使用 G Suite SMTP 服务器来发送所有外发邮件。
如果您使用自己的域名,但该域名由托管公司管理,那么您同样应该使用该托管公司提供的出站 SMTP 服务器。(这些服务器可能与入站 MX 服务器相同,但不一定。)
如果您使用自己的域名和如果您运行自己的邮件系统,那么可能是您将邮件服务器放在了 Gmail 因垃圾邮件率高而列入黑名单的网络上。例如,为所有客户使用共享 IPv6 /64 池的托管公司通常被列入黑名单。
(在 Linode 的具体情况下,请求专用的 /64 是最佳选择 - 这样 Gmail 就不会将您的服务器的“声誉”与其他服务器的“声誉”混淆在一起。有时将邮件服务器配置为仅使用 IPv4 也可以解决问题。)
答案2
你至少需要两样东西:
- 拥有有效的PTR 记录(您的服务器 IP 地址的反向 DNS)
- 拥有有效的SPF 或 DKIM记录。
您可以检查两者是否符合在线 DNS 验证工具
所以基本上这样做谷歌表示:
- 发送 IP 必须具有 PTR 记录(即
发送 IP 的反向 DNS),并且与通过 PTR 记录中指定的主机名的正向 DNS 解析获得的 IP 相匹配。 - 发送域应该通过 SPF 检查或 DKIM 检查。