如何在Cloudflare中配置企业邮箱,发送接收Gmail邮件

最近打算给我的网站开通一个企业邮箱,用于发送邮件和接收邮件,我选择使用腾讯的企业邮箱,我的DNS解析到Cloudflare中,所以邮箱的解析也只能在Cloudflare中解析,我按照腾讯企业邮箱的文档进行配置,配置完后,发现邮件在163,88等国内邮箱使用没有问题,但无法接收谷歌,雅虎等邮箱的信息,而且也发不出去。

经过我通过AI和其他博主文章的指引下,终于解决了这个问题,所以下面是如何对接的详细过程:

1.导致gmail邮箱无法接收的原因是gmail对邮件的安全要求和验证都有要求,除了正常的MX还需要集合DMARC、DKIM 和 SPF的解析

SPF 记录是什么样的?

SPF 记录必须遵循一定的标准,以便服务器理解其内容。如下是 SPF 记录核心组成部分的示例:

v=spf1 ip4:192.0.2.0 ip4:192.0.2.1 include:examplesender.email -all

这个例子让服务器知道这是什么类型的记录,声明对这个域被批准的 IP 地址和第三方,并告知服务器如何处理不符合要求的电子邮件。我们分别说明各组成部分是如何实现这一点的:

  • v=spf1 告诉服务器这里包含一条 SPF 记录。每一条 SPF 记录都必须以这个字符串开始。
  • 然后是 SPF 记录的“客人名单”部分,即授权 IP 地址。在本例中,SPF 记录告诉服务器,ip4:192.0.2.0 和 ip4:192.0.2.1 被授权代表该域发送电子邮件。
  • include:examplesender.net 是 “include”(包含)标记的示例,该标记告诉服务器,有哪些第三方组织被授权代表该域发送电子邮件。这个标记表示,被包含域(examplesender.net)的 SPF 记录内容应被检查,其中包含的 IP 地址也应被视为已授权。一条 SPF 记录中可包含多个域,但这个标记仅适用于有效的域。
  • Finally, -all 告诉服务器,SPF 记录中未列出的地址没有被授权发送电子邮件并应被拒绝。
    • 这里的其他可选项包括 ~all:表示未列出的电子邮件将被标记为不安全邮件或垃圾邮件,但仍会被接受;不那么常见的是+all:表示任何服务器都可以代表该域发送电子邮件。

虽然本文中使用的示例相当简单,但 SPF 记录肯定会更加复杂。要确保 SPF 记录有效,需要注意如下几点:

  • 每个域不能关联多条 SPF 记录。
  • 记录必须以 all 部分结束,或包含一个redirect= 部分(表示该 SPF 记录由另一个域托管)。
  • SPF 记录不能包含大写字母。

什么是 DKIM 记录?

DKIM 记录存储了 DKIM 公钥,这是一串随机字符,用于验证使用私钥签署的任何内容。电子邮件服务器查询域名的 DNS 记录,以查看 DKIM 记录和其中的公钥。

DKIM 记录实际上是一种 DNS TXT(“文本” )记录。TXT 记录可用于存储域名管理员想要与其域名相关联的任何文本。DKIM 就是该类型 DNS 记录的许多用途之一。(在某些情况下,域名将其 DKIM 记录存储为反而指向密钥的 CNAME 记录;但是,官方 RFC 要求这些记录是 TXT。)

下面是一个 DKIM DNS TXT 记录的示例:

名称在提示下键入内容TTL
big-email._domainkey.example.comTXTv=DKIM1; p=76E629F05F70
9EF665853333
EEC3F5ADE69A
2362BECE4065
8267AB2FC3CB
6CBE
6000

名称

与大多数 DNS TXT 记录不同,DKIM 记录被存储在一个专门的名称下,而不仅仅是域名的名称。DKIM 记录名称遵循以下格式:

[selector]._domainkey.[domain]

selector 是由域名使用的电子邮件服务提供商发布的专门值。它包含在 DKIM 标头中,使电子邮件服务器能够在 DNS 中执行所需的 DKIM 查找。domain 是电子邮件域名。._domainkey. 包含在所有 DKIM 记录名称中。

为了查询 DKIM 记录,电子邮件服务器使用电子邮件服务提供商提供的 DKIM 选择器,而不仅仅是域名。假设 example.com 使用 Big Email 作为他们的电子邮件服务提供商,并且假设 Big Email 使用 DKIM 选择器 big-email。example.com 的大部分 DNS 记录将被命名为 example.com,但他们的 DKIM DNS 记录名称将为 big-email._domainkey.example.com,这已在上面的示例中列出。

内容

这是列出公钥的 DKIM DNS 记录的部分。在上面的示例中,v=DKIM1 表示这个 TXT 记录应当被解释为 DKIM,公钥则是 p= 之后的内容。

记录类型和 TTL

这些是 DNS 记录中的标准字段。TXT 表示这是一个 DNS TXT 记录。“TTL”代表生存时间(以秒为单位),它表示该记录在需要刷新之前被视为有效的时长。DKIM 记录的 TTL 一般为几分钟。

什么是 DMARC 政策?

DMARC 政策决定在对一封电子邮件进行 SPF 和 DKIM 记录检查后发生的情况。一封电子邮件要么通过 SPF 和 DKIM,要么不通过。DMARC 政策决定了当电子邮件未通过检查时,会被标记为垃圾邮件、被阻止,还是被传递给预定的收件人。(如果没有 DMARC 记录,电子邮件服务器仍然可以将电子邮件标记为垃圾邮件,但 DMARC 对何时这样做提供了更明确的指示)。

Example.com 的域名政策可以是:

“如果一封电子邮件未能通过 DKIM 和 SPF 测试,则将其标记为垃圾邮件。”

这些政策不是作为人类可读的句子来记录的,而是作为机器可读的命令,以便电子邮件服务能够自动解释它们。该 DMARC 政策实际上类似于以下内容:

v=DMARC1; p=quarantine; adkim=s; aspf=s;

这是什么意思?

  • v=DMARC1 表示该 TXT 记录包含一个 DMARC 政策,应该被电子邮件服务器解释为该政策的内容。
  • p=quarantine 表示电子邮件服务器应当“隔离”未通过 DKIM 和 SPF 的电子邮件,将它们视为潜在的垃圾邮件。其他可能的设置包括 p=none,它允许未通过检查的电子邮件仍然传递,以及 p=reject,它指示电子邮件服务器阻止未通过检查的电子邮件。
  • adkim=s 意味着 DKIM 检查是“严格的”。将 s 改为 r,即可将其设置为“宽松的”,比如 adkim=r
  • aspf=s 与 adkim=s 的意义相同,但是针对 SPF。
  • 注意,aspf 和 adkim 是可选设置。p= 属性指示电子邮件服务器应当如何处理那些未通过 SPF 和 DKIM 的电子邮件。

如果 example.com 的管理员想让这个政策更加严格,向电子邮件服务器发出更强烈的信号,将未经授权的邮件视为垃圾邮件,则可以按以下方式调整“p=”属性:

v=DMARC1; p=reject; adkim=s; aspf=s;

这行命令的大体意思是:“如果一封电子邮件没有通过 DKIM 和 SPF 测试,就不要发送。”

上面对于DMARC、DKIM 和 SPF的解释出自cloudflare官方文档。

下面是我这边配置的内容:

以@chiqio.com为例:

MXchiqio.commxbiz2.qq.com10
MXchiqio.commxbiz1.qq.com5
TXTchiqio.com"v=spf1 include:spf.mail.qq.com ~all"
TXT_dmarc"v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com"
TXTlokg123._domainkey"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqC4xPrWWHmogF4HnmcTCWMMggP9eszVKUdffvNVBHr1cQaz8f6GFDOQ6iFbYoOkK0hpiDq/rpMlCBZKjerRhdP6XFCtF1eSwbUS44UiyU25mFDCa2BhN4ylrCLlB7so2M72IZtQ/HmzHkX49dLGZmGeiZ5nv/P33Bok1xYijCIMlQIDAQAB"这里的内容从腾讯企业邮箱里面获取,name和内容都是企业邮箱生成的,每个人的都不一样,我的内容只能作为参考
CNAMEemailexmail.qq.com这里是橙云,不是灰云

相关的参考图片

版权属于: sbboke版权所有。

转载时必须以链接形式注明作者和原始出处及本声明。

张贴在Wordpress

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论