Email PHPMailer和DKIM,使用经过身份验证的SMTP服务器进行SPF验证

Email PHPMailer和DKIM,使用经过身份验证的SMTP服务器进行SPF验证,email,smtp,phpmailer,spf,Email,Smtp,Phpmailer,Spf,我有一个带有电子邮件通知的web应用程序。 我正在使用PHPMailer通过我的提供商提供的SMTP服务器通过经过身份验证的SMTP发送邮件 SPF和DKIM设置会使所有消息无效,因为在某种程度上,我的Web服务器应该包含在SPF列表中,并且PHPMailer必须对消息进行签名 有没有办法让SMTP服务器为我信封并签署电子邮件? 我认为,经过身份验证的SMTP连接将定义第一个服务器,而不是第一个客户端。这是SMTP服务器的错误想法还是配置错误?您的邮件服务器是否会为您进行DKIM签名取决于邮件服

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

SPF和DKIM设置会使所有消息无效,因为在某种程度上,我的Web服务器应该包含在SPF列表中,并且PHPMailer必须对消息进行签名

有没有办法让SMTP服务器为我信封并签署电子邮件?
我认为,经过身份验证的SMTP连接将定义第一个服务器,而不是第一个客户端。这是SMTP服务器的错误想法还是配置错误?

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

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


SPF确实包括原始IP,但您需要了解“常规”SMTP和中定义的SMTP提交协议之间的区别,并特别提到您可能希望提交服务器能够。提交客户端通常不会被视为源(从SPF的角度)。如果该服务器位于您自己的网络中,则您在持有私钥方面没有问题。

谢谢,很高兴知道。但我如何从SPF的角度理解被认为是什么“起源”?换句话说,如何从消息头识别来自第一个提交服务器的客户端?该链将在
接收的
头中可见,但您可能会发现列出的第一个是提交服务器,而不是客户端;我不确定围绕这件事的确切规则。