在开始之前当然需要有一个自定义域名,如果没有的话就去购买一个吧!

注意,这个方案使用了 Gmail 进行代发邮件,没有 DMIK 签名,并不是一个专业的自建邮箱方案,所以不适合用于发送重要的业务邮件。

收!使用 Cloudflare 转发自定义域名邮件

  • 首先要把你的域名添加到 Cloudflare 中,可以在 Cloudflare dashboard 的 Website 中添加
  • 添加完成之后进入这个网站的设置,可以看到侧栏有一个 Email。开启功能 Email Routing 功能,填上转发的目标邮箱然后确认就完成了,最重要的更新域名 DNS 的 MX 记录的部分 Cloudflare 会帮你完成。

cloudflare-email-routing

  • 邮件的路由规则可以自定义,大部分情况下用 catch-all 全部转发到你的常用邮箱就行了。

Gmail 有一个小技巧是你可以在你的账号后面写上「+来源」,系统会将发送到 example+source@gmail 的邮件全部递送至 example@gmail 中。利用过滤器,你可以使用这个技巧在 Gmail 中分类不同邮件。

发! 使用 Gmail 代发信

需要注意,通过 SMTP 在 Gmail 发信是一个随时可能被废弃的功能,不过截止至 2023 年它还能用。

  • 首先需要确保你的 Google 开启了两步验证(2FA)
  • 然后在 Google 创建一个 App password,这里的密码(不含空格)是稍后用于 Gmail 登录邮件服务的
  • 在 Gmail 设置中找到 Accounts and Import,在「Send mail as」下单击「Add another email address」
  • 这时会弹出一个黄色框,在 Name 填你希望的发件名,Email Address 填上你希望的发件邮箱,也就是你的 Cloudflare 自定义邮箱,然后取消勾选「Treat as an alias」,点击下一步

gmail-send-mail-as

  • 最重要的一步,在 SMTP 填smtp.gmail.com, port587不用改。然后注意 Username 写的是你的 Gmail 邮箱,Password 是在上面创建的 App password,确定之后验证一下邮箱就完成了。
  • 然后你就可以把这个自定义邮箱设置成默认邮箱了。
  • 不过为了防止邮件被丢进垃圾邮箱,还需要更新一下 DNS 的 SPF 信息。回到 Cloudflare 控制台,在域名的 DNS 选项中找到域名的 TXT 记录,把v=spf1 include:_spf.mx.cloudflare.net ~all更新成 v=spf1 include:_spf.mx.cloudflare.net include:_spf.google.com ~all。这个记录表示允许 Gmail 和 Cloudflare 代表你发送电子邮件。
  • 好了,尽情享受你的自定义域名邮箱吧!

等等,这是怎么做到的?

我们全程在 Gmail 中操作,完全没有登录 Cloudflare,Gmail 是怎么发送邮件的呢?

其实 Gmail 的代发邮件是在 「冒充」你指定的域名邮箱地址向其他一个电子邮件地址发邮件。这个行为是存在很多风险的。因此很多邮箱检测到收到邮件的真实发送地址(Sender)与宣称的发件人地址(From)不一致,就会在读信页面里显示出「由某地址代发」的提示。

所以我们需要在 DNS 中添加 SPF,告诉邮箱服务商这个域名允许 Gmail 代发邮件,减少邮件被拒收或直接丢进垃圾桶的风险。另外设置 DMARC 记录也能提升邮件送达率。

题外话 使用 Authenticator 作为 Google 2FA 方案

Google 在 2022 年之后就不能将 Authenticator 作为 2FA 选项了,但还是有人提到了一种绕过方案

首先在网页里打开开发者工具,在 WebAuthn 选项卡中开启虚拟认证环境。然后模拟一把假的 Security key,添加后 Google 就允许你再添加 Authenticator 作为备选认证,完成后再把 Security key 删掉就行了。

参考资料