【问题标题】:PHPMailer and DKIM, SPF validation with an authenticated SMTP serverPHPMailer 和 DKIM,使用经过身份验证的 SMTP 服务器进行 SPF 验证
【发布时间】:2020-09-28 22:12:38
【问题描述】:

我有一个带有电子邮件通知的 Web 应用程序。 我正在使用 PHPMailer 通过我的提供商提供的 SMTP 服务器通过经过身份验证的 SMTP 发送邮件。

所有邮件都因 SPF 和 DKIM 设置而失效,因为不知何故,我的网络服务器应该包含在 SPF 列表中,并且 PHPMailer 必须对邮件进行签名。

有什么方法可以让 SMTP 服务器为我封装并签署电子邮件? 我认为经过身份验证的 SMTP 连接会将第一台服务器定义为被包封的服务器,而不是第一个客户端。这是错误的策略还是 SMTP 服务器的错误配置?

【问题讨论】:

    标签: email smtp phpmailer spf


    【解决方案1】:

    您的邮件服务器是否会为您进行 DKIM 签名取决于邮件服务器 - 通常最好这样做,因为您不必担心。

    但是,如果可以的话,最好自己签名。如果您通过托管服务提供商的邮件服务器发送邮件,他们将需要访问您的私钥才能作为您的域进行签名。出于这个原因,如果他们确实签名,它通常是作为中间人而不是作为原始发件人,这可能意味着他们不能保证您需要签名才能通过 DMARC 检查的From 地址。您可以同时执行这两项操作,因为消息包含多个 DKIM 签名是完全合法的,这些签名在消息传输的不同点由不同的各方签名。

    SPF 确实包含原始 IP,但您需要注意“常规”SMTP 和RFC6409 中定义的 SMTP 提交协议之间的区别,并特别提到您可能希望提交服务器到 add a signature。提交客户端通常被视为来源(从 SPF 的角度来看)。如果该服务器在您自己的网络中,那么您在持有私钥方面没有任何问题。

    【讨论】:

    • 谢谢,很高兴知道。但是,从 SPF 的角度来看,我如何理解被认为是“起源”的东西?换句话说,如何从消息头中识别出来自第一个提交服务器的客户端?
    • 链会在received headers中可见,但是你可能会发现列出的第一个是提交服务器而不是客户端;我不确定围绕这个的确切规则。
    猜你喜欢
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 2017-03-10
    • 1970-01-01
    • 2015-07-23
    • 2015-10-14
    相关资源
    最近更新 更多