Mail-CF 上手教程
Mail-CF 配合 Cloudflare(简称 CF)的 “全收”,可以收发自己域名下任意合法前缀的邮件,例如
[email protected]。来信转发到你已有的邮箱,发信在 Mail-CF 网页中完成。准备工作
开始前请准备好以下内容:
- 一个 Cloudflare 账号:https://dash.cloudflare.com
- 一个已接入 CF DNS、状态为有效的域名。
- 一个 Resend 账号:https://resend.com
- 一个 GitHub 账号:https://github.com
- 一个日常使用的邮箱,用来接收转发邮件。
- Mail-CF 项目地址:https://github.com/Xiuyixx/Mail-CF
无需购买服务器。
下文的
example.com和[email protected]均为示例,请替换成自己的域名和邮箱。第 1 步 开启 CF 全收
- 登录 CF,进入
电子邮件服务 → 电子邮件路由,选择自己的域名。首次使用按提示添加邮件 DNS 记录。 - 在
目标地址 / Destination Addresses添加[email protected],去该邮箱点击 CF 验证邮件中的链接。 - 返回
路由规则 → 全收 / Catch-all,开启全收,操作选择发送到电子邮件,目标选择刚验证的邮箱,保存。 - 用另一个邮箱给
[email protected]发信,确认目标邮箱收到。
全收无需指向 Worker。若域名已有企业邮箱,先确认原有 MX 记录用途,更换收信 MX 会影响原邮箱。CF 全收说明
第 2 步 配置 Resend
验证发信域名
- 登录 Resend,进入
Domains → Add Domain,添加同一个域名example.com。 - 进入 “填写你的 DNS 记录” 页面,保持 “启用发送” 开启、“启用接收” 关闭。
- 打开 CF 的
域名 → DNS → 记录 → 添加记录,参考下表逐条添加。
用途 类型 名称 内容 / 目标 域名验证 DKIM TXT resend._domainkey复制自己 Resend 页面中该行的完整内容 启用发送 CNAME rsend复制自己 Resend 页面中该行的完整目标地址 启用发送 CNAME send复制自己 Resend 页面中该行的完整目标地址 DMARC(可选) TXT _dmarcv=DMARC1; p=none;所有记录的 TTL 选择 “自动”,两条 CNAME 的代理状态选择 “仅 DNS”。
实际记录以自己的 Resend 后台为准。名称若显示为
send.example.com,在 CF 中可填send。保留 CF 原有的收信 MX。 已有
_dmarc记录时不要重复添加或直接覆盖原有策略。添加完成后返回 Resend,点击 “我已经添加了记录”(或
Verify DNS Records),等待域名显示Verified / 已验证。若仍在验证中,先核对记录,再等待 DNS 生效。Resend DNS 设置说明创建 API 密钥
进入
API Keys → Create API Key,名称填Mail-CF,权限选Sending access,域名选刚验证的域名。密钥只展示一次,创建后请复制并妥善保存。第 3 步 部署 Mail-CF
- 打开 Mail-CF 项目,点击
Fork保存到自己的 GitHub;项目所有者可直接使用原仓库。 - 在 CF 进入
Workers 和 Pages → 创建应用程序,连接 GitHub,选择自己的Mail-CF仓库,创建 Worker。 - 按下表填写,点击
保存并部署。
配置项 填写内容 Worker 名称 mail-cf,与仓库wrangler.toml的name一致生产分支 main根目录 仓库根目录,通常为 /或默认留空构建命令 留空 部署命令 npx wrangler deploy保留仓库原有文件和配置。部署成功后,保存 Worker 页面提供的正式
workers.dev访问地址。第 4 步 设置登录密码和发信配置
进入该 Worker 的
设置 → 变量和机密 / Variables and Secrets,在正式生产环境添加:变量名 类型 填写内容 PASSWDSecret / 机密 自己设置的网页登录密码 API_KEYSecret / 机密 第 2 步复制的 Resend API 密钥 DOMAIN文本 / 普通变量 已验证的域名,如 example.com变量名使用大写,
DOMAIN只填域名,不带https://、@或空格。完成后点击保存并部署。请填在运行时 “变量和机密”,不要填到 “构建环境变量”。 首次使用配置这三项即可,不要把密码和密钥写入 GitHub。
第 5 步 登录并测试收发
打开 Worker 的正式访问地址,输入
PASSWD登录。确认页面顶部发件域名正确,填写:- 收件人:另一个可收信的邮箱。
- 发件前缀:
hello,不要填完整邮箱。 - 主题和纯文本正文:填写测试内容。
- 其他可选项:先留空,暂不添加附件。
点击发送,对方看到的发件地址就是
[email protected]。去收件邮箱确认收到,再回复这封邮件,检查 CF 全收目标邮箱是否收到回复。以后将前缀换成
support,即可使用[email protected]收发,无需重新部署。前缀建议先用英文字母和数字。在 QQ 等目标邮箱直接回复来信时,通常会使用该邮箱自己的地址。要继续用域名身份,请回到 Mail-CF 写信,填写对应的发件前缀。首次测试时
Reply-To留空。常见问题
- 登录失败或域名未配置: 检查运行时变量是否填写正确并已保存部署。
- 发信失败: 检查 Resend 域名是否 Verified、密钥权限是否正确、账户是否还有额度。
- 收不到邮件: 检查目标邮箱验证、全收开关和 CF 收信 MX,再查看垃圾邮件。
- 部署失败: 核对第 3 步设置,确认使用完整仓库。
- 持续提示请求频繁: 稍等再试;若仍然出现,检查 Worker 的 “绑定” 中是否有
RATE_LIMITER。
收藏 1支持反对打赏
@gork 用简单的话术说明
gork:说白了就两件事,别被教程字数吓到。
收信:把域名丢进 Cloudflare 的电子邮件路由,开「全收」。谁往你域名下随便一个前缀发信,比如 hello@你的域名,CF 都原样转到你平时用的那个邮箱。不用买服务器,也不用每个前缀单独设。
发信:Mail-CF 就是个套在 Cloudflare Worker 上的网页。登录后填个前缀,背后拿 Resend 的发信接口把信发出去,对方看到的发件人就是 前缀 @你的域名。换前缀不用重新部署。
所以 @Xsb 那句没说错,发件本质就是 Resend;CF 负责收、负责把域名挂上。你原来域名上要是已经有企业邮箱,先别瞎改收信的 MX,一改原来的邮箱就废了。
密码和 Resend 的密钥只填 Worker 的运行时「变量和机密」,别写进 GitHub。
共 1 条回复mark 一下 不过收信用 catch all 不会导致收到很多 spam mail 嘛,resend 我记得官方 a up 还是建议用于营销一类邮件的发送而非日常邮件,同类竞品可以看一下 smtp2go,提供免费的发件服务器可以配合 cf 的 email route。。。
个性签名楼上楼下都是大水比,没说我不是
共 1 条回复可以,这教程不错
帮顶支持
bdbd
个性签名无敌大水比
还是进来看看了
学习一下

