如何验证入站邮件?专门使用 SendGrid?
How to authenticate Inbound Mail? With SendGrid specifically?
我创建了一个使用 SendGrid 的 Inbound Parse Webhook 的应用程序。每当有人发送电子邮件 "whatever@mydomain.com" 时,电子邮件都会发送到 SendGrid,然后 SendGrid 使用包含电子邮件内容的 POST 访问我们的服务器。然后我们可以将该电子邮件数据反馈回我们的主应用程序。
我一切正常。但是现在我不知道我应该如何验证 SendGrid 发布到我们服务器的消息。有谁知道这样做的最佳行动方案?验证我们的入站电子邮件实际上来自我们主应用程序的授权用户?
显然我们可以检查 headers 中的 "From" 地址,但我读到这些可以完全被欺骗。显然,"dkim" 和 "spf" 这两个来自 SendGrid 的传入邮件的属性与授权有关。但是我在文档中找不到任何东西,或者在其他任何地方都找不到任何东西,告诉我应该如何使用这些 "dkim" 和 "spf" 字段来验证消息的真实性。
如果有人有任何帮助,无论是一般性的、具体的还是其他方面的帮助.. 将不胜感激。提前致谢。
嗯。由于这似乎没有引起太大的关注,我想我会 post 我自己的 janky-ass 解决问题的方法,以防将来其他人遇到这个问题。
免责声明:这可能完全是胡说八道。但它似乎工作正常。
基本上,我最终获取了一些关于启动入站电子邮件的原始消息的关键上下文信息。我们将该信息编码在我们使用 SendGridMessage 设置的 "Reply To" 地址的 local-part 中。然后我加密编码的 local-part.
当 SendGrid 使用入站电子邮件 POST 到我们的服务器时,我们解密 "TO" local-part 并验证结果。如果解密成功,我们检查 "FROM",并验证他们是我们主应用程序的实际授权用户。然后,我们验证该用户是否具有编辑与 "Reply To".
的原始编码 local-part 关联的信息的正确权限
我创建了一个使用 SendGrid 的 Inbound Parse Webhook 的应用程序。每当有人发送电子邮件 "whatever@mydomain.com" 时,电子邮件都会发送到 SendGrid,然后 SendGrid 使用包含电子邮件内容的 POST 访问我们的服务器。然后我们可以将该电子邮件数据反馈回我们的主应用程序。
我一切正常。但是现在我不知道我应该如何验证 SendGrid 发布到我们服务器的消息。有谁知道这样做的最佳行动方案?验证我们的入站电子邮件实际上来自我们主应用程序的授权用户?
显然我们可以检查 headers 中的 "From" 地址,但我读到这些可以完全被欺骗。显然,"dkim" 和 "spf" 这两个来自 SendGrid 的传入邮件的属性与授权有关。但是我在文档中找不到任何东西,或者在其他任何地方都找不到任何东西,告诉我应该如何使用这些 "dkim" 和 "spf" 字段来验证消息的真实性。
如果有人有任何帮助,无论是一般性的、具体的还是其他方面的帮助.. 将不胜感激。提前致谢。
嗯。由于这似乎没有引起太大的关注,我想我会 post 我自己的 janky-ass 解决问题的方法,以防将来其他人遇到这个问题。
免责声明:这可能完全是胡说八道。但它似乎工作正常。
基本上,我最终获取了一些关于启动入站电子邮件的原始消息的关键上下文信息。我们将该信息编码在我们使用 SendGridMessage 设置的 "Reply To" 地址的 local-part 中。然后我加密编码的 local-part.
当 SendGrid 使用入站电子邮件 POST 到我们的服务器时,我们解密 "TO" local-part 并验证结果。如果解密成功,我们检查 "FROM",并验证他们是我们主应用程序的实际授权用户。然后,我们验证该用户是否具有编辑与 "Reply To".
的原始编码 local-part 关联的信息的正确权限