AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[sendgrid](server)

Martin Hope
Rohan
Asked: 2022-03-11 20:54:45 +0800 CST

如何使用中间域为 DKIM 和 SPF 设置 DNS 设置?

  • 3

我正在开发一种帮助用户发送电子邮件的工具。我计划在后端使用 MTA(邮件传输代理),如 AWS-SES 或 Sendgrid 等。为了使电子邮件成功到达 recipeints 收件箱,用户必须通过配置 DNS 来设置 DKIM/SPF各自域的设置。

现在,如果我以 SES 为例,我知道他们有一个 API,允许我添加一个“身份”并使用该 API 取回所有必要的 DNS 记录。我确信 Sendgrid 和其他 MTA 具有类似的 API,允许添加身份并返回 DNS 记录供用户应用。

我向用户显示返回的 DKIM DNS 设置,他们将其添加到他们的 DNS 提供商,然后当他们发送电子邮件时,recipints 会正确获取它(标题中没有任何“通过 amazonses.com”的东西)

现在举个例子——假设我正在构建的工具托管在 chillybilly.xyz 上,并且其中一个使用我的工具的用户有一个名为 frankthetank.xyz 的域,他们想用它来通过我的平台发送电子邮件.

当用户尝试通过我的平台验证他的域时,我将在 AWS SES 中点击上面提到的 API - 并向用户显示如下内容:

在此处输入图像描述

之后,他们可以为成功的 DKIM/SPF 添加这些 CNAMES 和 TXT 记录,并可以开始发送电子邮件。但是如果你仔细观察,他们可以看到我使用的是 SES,因为这些 CNAMES 和 TXT 记录的值。这是我想要避免的事情,相反,我想要那些被称为类似的东西7nuk24xywyawocu6ctqjxmjasiaiq3vq.dkim.chillybilly.xyz来显示我的品牌,但在后台它仍然会指向正确的 SES。

现在我知道,这样的事情是可能的,因为当我注册 ConvertKit 时,他们向我展示了如下内容:

在此处输入图像描述

如您所见,这两个值指向 converkit.com 但是当我通过 DNS 查找运行它们时:

https://dnschecker.org/all-dns-records-of-domain.php?query=spf.dm-5mk8zo6m.sg7.convertkit.com.&rtype=ALL&dns=google

https://dnschecker.org/all-dns-records-of-domain.php?query=dkim.dm-5mk8zo6m.sg7.convertkit.com.&rtype=ALL&dns=google

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我可以看到它在后台指向属于 Sendgrid 的 MX 和 TXT 记录。我怎样才能做到这一点?(我相信同样的原则也适用于 SES 或任何其他 MTA)


编辑: 我尝试了一些事情 - 我在 chillybilly.xyz (我的项目的域)中设置了 CNAME、MX 和 TXT,并从 frankthetank.xyz 指向了两个 CNAMES 调用spf.frankthetank.xyz和dkim.frankthetankxyz

https://dnschecker.org/all-dns-records-of-domain.php?query=spf.frankthetank.xyz&rtype=ALL&dns=google

在此处输入图像描述 在此处输入图像描述

https://dnschecker.org/all-dns-records-of-domain.php?query=dkim.frankthetank.xyz&rtype=ALL&dns=google

在此处输入图像描述

如您所见,我能够获得与 ConvertKit 使用 Sendgrid 所做的非常相似的结果。但它并没有以这种方式得到验证。:(

当我检查这些 DNS 查找(上面的链接)时,我看到的唯一区别是 CNAME 也出现在我的查找中,但在 convertkit 的情况下却没有。所以我认为我接近解决方案,但不确定我缺少什么,有什么想法吗?:)

domain-name-system spf dkim amazon-web-services sendgrid
  • 3 个回答
  • 374 Views
Martin Hope
Will Matheson
Asked: 2020-03-31 10:44:14 +0800 CST

如何将另一个发件人(例如 Sendgrid)列入 DMARC 的白名单?

  • 1

我们托管自己的电子邮件,但使用 Sendgrid 代表一些无法轻松处理我们的邮件配置的内部 PHP 服务发送邮件(例如,默认情况下它们不允许自签名证书,因此让它们连接到我们的服务器以发送诸如帐户激活电子邮件之类的东西是一个 PITA,就像不得不破解 CMS 的功能以传递一系列配置覆盖一样 - 对于少数电子邮件,我认为这很糟糕并且刚刚使用了 Sendgrid 的免费套餐)。

我能够设置我们的 SPF 以明确允许 Sendgrid 代表我们发送电子邮件:

ourdomain.com. IN TXT "v=spf1 mx a ip4:OUR.IP.GOES.HERE/32 include:sendgrid.net -all"

因此,我们发送的邮件和 Sendgrid 发送的邮件都有平行的路径来通过 SPF 和 DKIM。(我没有为自己做任何特殊的 DKIM 设置,但这是一个过程 - FWIW,这是我遵循的教程。)

但现在我想用 DMARC 结束所有内容,而 Sendgrid 电子邮件失败了,即使它们通过了 SPF 和 DKIM:

Authentication-Results: mx.google.com; dkim=pass [email protected] header.s=smtpapi header.b=eI2rawkZ; spf=pass (google.com: domain of [email protected] designates SENDGRID.IP.GOES.HERE as permitted sender) smtp.mailfrom="[email protected]"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ourdomain.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.net; h=from:subject:content-type:content-transfer-encoding:mime-version: x-feedback-id:to; s=smtpapi; bh=AZ+8LE7VkXTKxox/rLn7opOhEWv+baJWKr9E5fUOSKs=; b=eI2rawkZeMvtcJXThu7pufwbVPjRHa5xx46txJj0j9gNNDxNs68y8bcPlj1T9r7rxDK4 oi6e19GMvtdyttXR5WKjg2T+w0p5Ep3Ni6YRQhxq4ZsGcO0mZiRXyNf4BdZ3cOgLKXwECh dMSOaHyK0lR91Xp6eTnOYE7bT9hcRVrWA=

我们发送的电子邮件正在传递:

Authentication-Results: mx.google.com; dkim=pass [email protected] header.s=default header.b=fySBSueO; spf=pass (google.com: domain of [email protected] designates OUR.IP.GOES.HERE as permitted sender) [email protected]; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ourdomain.com

我们的 DMARC 记录是这样设置的:

_dmarc.ourdomain.com. 299 IN TXT "v=DMARC1\; p=none\; pct=100\; rua=mailto:[email protected]"

有没有办法可以调整我们的 DNS(或其他东西?)以允许 Sendgrid 电子邮件通过 DMARC 检查?然后我们可以安全地将推荐的“p”操作升级为“隔离”或“拒绝”。虽然,如果这不会严重损害我们的声誉,我很乐意将其保留为“无”。在我开始 SPF / DKIM / DMARC 之旅之前遇到的困难之后,把所有东西都整齐地捆绑起来真是太好了。

domain-name-system email authentication dmarc sendgrid
  • 2 个回答
  • 2969 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve