• jonssonyan

    原文地址:https://jonssonyan.com/blog/cloudflare-resend-domain-email/

    之前我分享了独立开发省钱指南 - Cloudflare,里面提到了 Email Routing 用来接收邮件,这次我们继续薅 Cloudflare,本文教大家如何使用 Cloudflare Email Routing + Resend 0 元搭建域名邮箱。

    做产品以后,我们一般都需要几个域名邮箱:

    - [email protected]

    - [email protected]

    - [email protected]

    直接在 Google Workspace、Microsoft 365 或企业邮箱购买,每个账号每个月都要付费。一个产品看起来不多,产品多了支出就多了。

    如果只是自己使用,不需要多人协作和独立邮箱后台,可以使用下面这套方案:

    Cloudflare Email Routing 收邮件,Resend 发邮件,最后统一在 Gmail 管理。

    除了域名本身,整套方案可以做到 0 元。

    实现原理

    收邮件:

    用户 → [email protected] → Cloudflare → Gmail

    发邮件:

    Gmail → Resend SMTP → 用户

    Cloudflare 负责把发到域名邮箱的邮件转发到个人 Gmail,Resend 提供 SMTP 发信服务,Gmail 负责查看、回复和管理邮件。

    配置完成以后,用户看到的发件人和收件人都是 [email protected]。

    Cloudflare Email Routing 收邮件

    Cloudflare Email Routing:Route emails · Cloudflare Email Service docs

    图片

    Cloudflare Email Routing 可以免费接收域名邮件,并转发到已经验证的邮箱。

    例如:

    - [email protected] 转发到 [email protected]

    - [email protected] 转发到 [email protected]

    - [email protected] 转发到 [email protected]

    Cloudflare 当前免费版的入站邮件没有数量限制,每个域名最多可以创建 200 条路由规则,单封邮件最大 25 MiB。

    Cloudflare Email 限制:Limits · Cloudflare Email Service docs

    图片

    图片

    配置也很简单:

    - 把域名接入 Cloudflare DNS;

    - 打开 Email Service;

    - 进入 Email Routing;

    - 添加并验证接收邮件的 Gmail;

    - 创建域名邮箱和转发规则;

    - 按照提示添加 MX、SPF 和 DKIM 记录。

    Cloudflare 会自动处理大部分 DNS 配置,通常几分钟后就能收到邮件。

    还可以开启 Catch-all,把所有没有单独配置的地址都转发到 Gmail。例如别人向 [email protected] 发邮件,也能收到。

    不过我不建议默认开启 Catch-all。地址越多,垃圾邮件越多。正常创建 hello、support 和 billing 等常用地址就够了。

    Email Routing 不是真正的邮箱

    这里需要注意:Cloudflare Email Routing 只是邮件转发服务。

    它没有:

    - 独立收件箱

    - 邮箱账号和密码

    - IMAP、POP3

    - 已发送邮件

    - 通讯录和日历

    - 免费向任意地址发送邮件的 SMTP

    因此,只配置 Cloudflare Email Routing,可以收到 [email protected] 的邮件,但是直接在 Gmail 回复时,默认发件人仍然可能是个人 Gmail。

    想用域名地址回复,还需要一个发信服务。

    图片

    Cloudflare 现在也提供 Email Sending,但是向任意收件人发信需要 Workers Paid,免费版只能向账户中已经验证的地址发送。

    Cloudflare Email Sendign 价格:Pricing · Cloudflare Email Service docs

    如果不想订阅 Workers Paid,可以使用 Resend。

    使用 Resend 发邮件

    Resend:https://resend.com/

    Resend 是一个面向开发者的邮件发送服务,可以通过 API 或 SMTP 发送邮件。

    图片

    图片

    免费版目前包含:

    - 每月 3000 封邮件;

    - 每天最多 100 封;

    - 1 个自定义域名;

    - SMTP Relay;

    - SPF、DKIM 域名认证;

    - 30 天日志。

    对于独立开发者回复用户邮件,以及发送验证码、登录链接和订单通知,基本够用。

    Resend 免费额度: What is Resend Pricing - Resend

    配置流程如下:

    - 注册 Resend;

    - 添加自己的域名;

    - 在 Cloudflare DNS 中添加 Resend 提供的 SPF、DKIM 和 MX 记录;

    - 等待域名验证通过;

    - 创建 API Key。

    Resend 默认使用 send.example.com 作为 Return-Path,所以它添加的是 send 子域名的 MX 和 SPF,不会覆盖 Cloudflare Email Routing 在主域名上的 MX 记录。

    不要删除 Cloudflare 自动创建的 MX 记录,否则域名邮件会无法转发到 Gmail。

    Resend 官方更建议使用独立子域名发送邮件,例如 updates.example.com,这样可以隔离发信信誉。但如果希望用户直接看到 [email protected],也可以验证主域名,然后按照 Resend 提供的 DNS 记录配置。

    在 Gmail 中添加域名邮箱

    Resend 验证成功以后,打开 Gmail:

    - 进入“设置”;

    - 选择“账号和导入”;

    - 找到“用这个地址发邮件”;

    - 点击“添加其他电子邮件地址”;

    - 输入名称和 [email protected];

    - 填写 Resend SMTP 信息。

    SMTP 配置如下:```
    SMTP 服务器:smtp.resend.com
    端口:587
    用户名:resend
    密码:Resend API Key
    加密方式:TLS
    ```也可以使用 465 端口和 SSL。Resend 还支持其他端口,但 Gmail 使用 587 或 465 即可。

    Resend SMTP 文档: Send emails with SMTP - Resend

    保存后,Gmail 会向 [email protected] 发送一封验证邮件。邮件经过 Cloudflare 转发回 Gmail,点击验证链接或者填写验证码即可。

    以后写邮件时,可以在发件人位置选择:

    [email protected]

    邮件会由 Gmail 提交给 Resend,再由 Resend 使用你的域名发送。

    Google 的 Gmail API 也明确支持为自定义发件地址配置外部 SMTP,包括服务器、端口、用户名、密码和加密方式。

    Gmail SendAs 文档: REST Resource: users.settings.sendAs  |  Gmail  |  Google for Developers

    让回复默认使用域名邮箱

    图片

    完成上面的配置后,还需要修改 Gmail 的一个设置。

    在“账号和导入”中找到“用这个地址发邮件”,选择:

    回复邮件时,使用收到邮件的地址回复。

    这样用户发送邮件到 [email protected],你点击回复时,Gmail 会自动使用 [email protected],而不是个人 Gmail。

    所有产品邮件都在一个 Gmail 中处理,不用频繁登录多个邮箱后台。

    总结

    对于一个人做产品的独立开发者,这套方案已经够用:

    - Cloudflare Email Routing 免费收邮件;

    - Resend 免费发邮件;

    - Gmail 统一管理;

    - 产品继续使用自己的域名地址。

    一个人、邮件少、产品多,可以用这套方案,以后挣钱了有团队了,再付费使用专业的企业邮箱服务也不迟。

    主楼
  • felix_zeng

    我想问的是自己搭建一个邮件系统和使用这一套方案有什么 例如iredmail

    #1
  • Jeffrey

    看上去好复杂,具体的使用场景是什么呢

    #2
  • AlecHuang

    - 把域名接入 Cloudflare DNS

    话说如果域名没有接入 Cloudflare DNS的情况下有没有对应的方案

    #3
  • jonssonyan

    域名邮箱啊,能收能发,收的话可以分不同的域名,这样收邮件的时候可以根据 email 看不同来源

    #4
  • digitlife

    最近打算研究这个话题,官方开源了一套方案,数据是存在R2和D1里的,需要付费,因为现在cf也能发邮件了,就可以不用resend了,也有几天几个方案,ui更友好一些,官方的这个好像叫 agentbox

    #5
  • jonssonyan

    优点是站在 cloudflare + resend + gmail 的肩膀上,不需要自己运维。

    缺点是发邮件收邮件有限制,但是基本够用了。

    量大还是自建好一点。

    #6
  • jonssonyan

    付费的话,全套都在 Cloudflare Email 就可以了,能收能发

    #7
  • jonssonyan

    那就不能用 Cloudflare 了,看你域名在哪里买的?对应平台可能提供域名邮箱服务

    #8
  • AlecHuang

    阿里云有免费版好像一年

    但是很难用还带一堆阉割 甚至如果你做建站的话做发验证码的话

    用到重新发送验证码时候(同标题的邮件),他还会“很贴心的帮你拦截”…

    远不如自己部署的cloudflare temp mail

    #9
  • Shilin_Zhou

    为什么不能用 resend 收件^-^

    #10

发表回复

登录后回复