Azure 上的 Sendgrid "Sender Authentication"

Sendgrid "Sender Authentication" on Azure

我有一个很好用的 Azure SendGrid 帐户。我可以正常发送电子邮件 API。我需要设置 Sender Authentication(2 个原因,首先它会帮助接收者在他们的垃圾中找到它,更重要的是它会允许我设置 Inbound Parse)。

我已经查阅了 Sendgrid 文档 (https://sendgrid.com/docs/User_Guide/Settings/Sender_authentication/How_to_set_up_domain_authentication.html),其中有明确的说明,其中涉及 DNS 记录(即将推出),但不幸的是,这不起作用。我也经历了他们的故障排除。我认为我的域实际上是一个子域可能是个问题,但我不知道如何修复 DNS 记录以使其正常工作。

我的站点有一个 "DNS Zone" 设置,让我们调用该站点 "fake.azurewebsites.net"。

Sendgrid 指示我添加以下 CNAME 记录(数字已打乱): em1879.fake.azurewebsites.net > u7381760.wl261.sendgrid.net (..以及另外两个)

所以我做了那些记录,等了48个多小时DNS刷新,但是Sendgrid还是不验证。我收到错误:"em1879.fake.azurewebsites.net" 的预期 CNAME 匹配 "u7381760.wl261.sendgrid.net"。我还尝试了他们的故障排除,但无法使用 DIG 命令获得 "answer"。我没有使用白名单或任何其他已知会干扰的功能。

在所有文档中,记录通常采用以下形式: em1879.usersDomain.com 而不是 em1879.userSub.Domain.com,所以这可能是问题的一部分,但我当然可能遗漏了一些东西。

我想复制从 Microsoft 技术支持获得的答案。根据@mdeora 的评论,我联系了 Azure,下面是回复。似乎子域是问题所在,但仅针对这些 azurewebsites.net 子域,如果您可以设置委托,它可能适用于其他子域。

“我怀疑是授权问题。

据我了解,您已经创建了一个 DNS 区域名称 'geic.azurewebsites.net'。这已在 Azure DNS 中分配了名称服务器(例如 ns1-08.azure-dns.com 等)。然后您创建了 CNAME 类型的 DNS 条目 'em8849'。

问题是没有从父 DNS 区域到您的 DNS 区域的 DNS 委派。在这种情况下,父 DNS 区域是 'azurewebsites.net'。这是 Microsoft 拥有的,他们不支持客户从该域设置委派。

你应该:

购买您自己的域名(例如 myapp.com)。您可以使用 Azure 中的 App Service Domains 服务(目前为预览版)执行此操作。参见 https://azure.microsoft.com/blog/app-service-domain/ 在 Azure DNS 中创建相应的 DNS 区域 为您的 DNS 区域设置 DNS 委派。参见 https://docs.microsoft.com/azure/dns/dns-delegate-domain-azure-dns 创建您的 DNS 记录。对于 Web 应用程序,使用指向 'xxx.azurewebsites.net' 的 CNAME 或直接指向站点 IP 地址的 A 记录。 对于 Web 应用程序,您还必须将您的域名注册为 Web 应用程序的自定义域。参见 https://docs.microsoft.com/azure/app-service/web-sites-traffic-manager-custom-domain-name 如果您使用应用服务域完成第 1 步,那么第 2 步和第 3 步应该会自动为您完成。

祝你好运!

乔纳森 (www.opsgility.com)" 建议由 Jonathan Tuliani 主持人于 2018 年 6 月 15 日星期五 9:00 AM

作为答案

对我来说,问题是 Azure 会自动在记录中包含域名:Sendgrid 要求添加 CNAME 记录“s1.domainkey.yourcustomdomain.com”;您不应在名称中包含“.yourcustomdomain.com”,因为 azure 会自动包含它。您可以通过编辑一条记录并查看它最终是否为:“s1.domainkey.yourcustomdomain.com.yourcustomdomain.com”来检查这一点。所以记录应该只有:“s1.domainkey”; 它对我有用,但我有一个从 azure 获得的自定义域;也许它适用于 azurewebsites 子域,我不确定。