"Send Mail As" 功能在 Gmail 中如何工作(在技术层面上)?

How does the "Send Mail As" feature work (at a technical level) in Gmail?

我没有任何技术问题,但出于好奇,我有一个问题想得到解答。

这是我目前对电子邮件工作原理的理解:

拥有自己的域的特权之一是您可以将其连接到 IMAP/POP3/SMTP 服务器,并使用它们与“anyone@yourdomain.com”收发消息。然而,由于垃圾邮件是一个问题,您用来发送邮件的 SMTP 服务器必须在您发送的每封邮件中添加一堆 headers(DKIM、SPF 等),以证明 SMTP 服务器具有从该域发送电子邮件的权限。接收 SMTP 服务器可以 cross-check 那些 headers 带有它找到的 DNS 记录的邮件,以验证电子邮件的合法性。

因此,如果您想以便宜的方式使用您的域发送电子邮件,可以使用 Gmail 的“发送邮件为”功能。我按照这篇帮助文章开始工作:https://support.google.com/domains/answer/9437157

注意:我在设置过程中取消选中“视为别名”选项。

等等...不需要额外的 DNS 配置?我在 Cloudflare 注册了我的域名,但那里没有与 Google 相关的条目。

设置过程中有这一步:

但这似乎只是为了Google防止使用他们的服务器发送垃圾邮件。 是什么阻止 Google 冒充他们想要的任何电子邮件地址?如果 Google 的 SMTP 服务器无法添加合法的 SPF/DKIM headers?,为什么接收 SMTP 服务器信任来自“anyone@yourdomain.com”的电子邮件

简短的回答是没有什么能阻止 Google 这样做,而 DMARC 正是为这种情况而创建的。


没有什么可以阻止 Google 冒充任何域。但是,当收件人收到的电子邮件不是从 From: 字段中指定的服务器发送的电子邮件时,他们可以(并且应该)做一些事情。

尝试从您刚刚添加的别名发送一封电子邮件到另一个 @gmail.com 收件箱。您会看到它在发件人电子邮件地址后面显示 via gmail.com。但其他电子邮件收件人可能会做更多:用红色感叹号和诈骗警告标记此邮件,将其放入垃圾邮件甚至完全拒绝接收。 Gmail 可能 有一些硬编码的信任,但尝试从您自己的 SMTP 服务器执行此操作,上述情况很可能会发生。

正如您在问题中所说,您可以通过使用 SPF (which protects against forging from other domains, but doesn't stop Google), or even sign your emails with DKIM (not possible from Gmail UI, but you can do this in some email clients or send email with a custom Python script like megmail.com 标记为授权发件人来授权您的电子邮件; Google 不知道密钥就不能这样做。

然而,这只解决了问题的一方面——授权合法的电子邮件。但是,如果 SMTP 服务器仍然收到未经验证的电子邮件怎么办?如果他们之前收到过来自同一发件人且带有 DKIM 签名的电子邮件怎么办?如果 DKIM 通过,但 SPF 失败怎么办?

因为这种情况下的行为在很大程度上是未指定的,而且发件人还想检查他们的 DKIM/SPF 授权是否真的有效,如果有人试图欺骗他们,则创建了另一个标准:DMARC。它引入了另一个 DNS TXT 记录,您可以在其中说明需要通过哪些检查,如果检查失败该怎么办,以及接收者应向域所有者报告哪些基本分析。