如何验证入站邮件?有SendGrid吗?

问题描述 投票:2回答:1

我创建了一个使用SendGrid的Inbound Parse Webhook的应用程序。每当有人发送电子邮件“[email protected]”时,电子邮件将发送到SendGrid,然后SendGrid会使用包含电子邮件内容的POST点击我们的服务器。然后,我们可以将该电子邮件数据反馈到我们的主应用程序

我把这一切都搞定了。但现在我不知道我应该如何验证SendGrid发送到我们服务器的消息。有谁知道这样做的最佳行动方案?验证我们的入站电子邮件实际上来自我们主要应用程序的授权用户?

显然我们可以检查标题中的“From”地址,但我读过这些可以完全被欺骗。显然“dkim”和“spf”是来自SendGrid的传入邮件的两个属性,与授权有关。但我在文档中找不到任何东西,或者在其他任何地方找不到任何东西,这告诉我应该如何使用这些“dkim”和“spf”字段来验证消息的真实性。

如果有人有任何帮助,一般,具体或其他..非常感谢。提前致谢。

c# email authentication sendgrid inbound
1个回答
1
投票

好。由于这似乎没有得到很大的牵引力,我认为我会发布我自己的janky-ass解决方案来解决这个问题,以及其他人在将来遇到这个问题的可能性。

免责声明:这可能是完全无用的垃圾。但似乎工作正常。

基本上我最终得到了一些关于发起入站电子邮件的原始邮件的关键上下文信息。我们在使用SendGridMessage设置的“Reply To”地址的本地部分编码该信息。然后我加密编码的本地部分。

当SendGrid使用入站电子邮件POST到我们的服务器时,我们解密“TO”本地部分并验证结果。如果它成功解密,我们检查“FROM”,并验证它们是我们主应用程序的实际授权用户。然后,我们验证相关用户是否具有编辑与“回复”的原始编码本地部分相关联的信息的正确权限。

© www.soinside.com 2019 - 2024. All rights reserved.