我正在开发一种帮助用户发送电子邮件的工具。我计划在后端使用 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 查找运行它们时:
我可以看到它在后台指向属于 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
如您所见,我能够获得与 ConvertKit 使用 Sendgrid 所做的非常相似的结果。但它并没有以这种方式得到验证。:(
当我检查这些 DNS 查找(上面的链接)时,我看到的唯一区别是 CNAME 也出现在我的查找中,但在 convertkit 的情况下却没有。所以我认为我接近解决方案,但不确定我缺少什么,有什么想法吗?:)