我创建了一个简单的 ASP.NET Web API应用程序,该应用程序从SendGrid接收解析的电子邮件。使用带有 ngrok 的安全隧道在我的机器上运行良好。电子邮件的解析内容将发布到本地托管的应用程序。
但是,当我将此应用程序部署到 Azure 时,它不起作用。我尝试在SendGrid中同时使用HTTP和HTTPS作为回调URL,但电子邮件未被处理。在 SendGrid 的"活动"页面中,没有"已分析"电子邮件的条目。我收到一封传递失败的电子邮件,该电子邮件本应由SendGrid处理。
响应为:550 当前没有该名称的邮箱可用
我知道该应用程序是可以访问的,因为我可以从浏览器或其他工具成功向其他资源执行HTTP请求。
我可能错过了什么吗?一些额外的配置,无论是针对应用程序还是在 SendGrid 中?
简短的回答是这样的:
-
如果您将CloudFlare用于DNS,CloudFlare很可能会阻止来自SendGrid的入站解析帖子。
-
在CloudFlare(在"防火墙"选项卡下)中查看防火墙事件日志,并查看Web API"主机"是否显示在那里。
-
如果是这样,您需要做的是将 SendGrid 用于发送入站解析帖子的 IP 地址范围列入白名单。
截至今天,他们当前入站解析的 IP 范围为 167.89.117.0 /24(基本上是从 167.89.117.0 到 167.89.117.255 的 IP 地址)。
希望这对您或其他人有同样的问题/根本原因有所帮助。