Warm tip: This article is reproduced from serverfault.com, please click

dns-Gmail中的“发送为”功能(在技术层面)如何工作?

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

发布于 2020-12-03 03:46:09

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

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

拥有自己的域的特权之一是,你可以将其连接到IMAP / POP3 / SMTP服务器,并使用它们与“ anyone@yourdomain.com”之间收发消息。但是,由于垃圾邮件是一个问题,用于发送邮件的SMTP服务器必须在发送的每条邮件中添加一堆标题(DKIM,SPF等),以证明SMTP服务器具有发送权限来自该域的电子邮件。接收SMTP服务器可以将它们与DNS记录交叉检查,以查找其验证电子邮件的合法性。

因此,如果你想廉价地发送与你的域有关的电子邮件,则可以使用Gmail的“代理发送方式”功能。我按照以下帮助文章开始了我的工作:https : //support.google.com/domains/answer/9437157

注意:在安装过程中,我没有选中“以别名方式处理”选项。

但是等等...不需要其他DNS配置吗?我已经在Cloudflare中注册了我的域名,并且那里没有与Google相关的条目。

设置过程中包含以下步骤: 验证电子邮件地址屏幕

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

Questioner
Austin Fay
Viewed
11
M. Volf 2020-12-06 02:03:50

简短的答案是没有什么可以阻止Google这样做,而DMARC正是针对这种情况而创建的。


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

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

就像你在问题中所说的那样,你可以通过将电子邮件标记gmail.comSPF作为授权发件人(可以防止他人伪造其他域名,但不会阻止Google)来授权电子邮件,甚至可以使用DKIM签名电子邮件(无法通过Gmail UI签名),但你可以在某些电子邮件客户端中执行此操作,或者使用像我这样的自定义Python脚本发送电子邮件; Google不能在不知道密钥的情况下执行此操作)。

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

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