Mail-CF 上手教程
Mail-CF 配合 Cloudflare(简称 CF)的“全收”,可以收发自己域名下任意合法前缀的邮件,例如 hello@example.com。来信转发到你已有的邮箱,发信在 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 和 yourname@qq.com 均为示例,请替换成自己的域名和邮箱。
第 1 步 开启 CF 全收
- 登录 CF,进入
电子邮件服务 → 电子邮件路由,选择自己的域名。首次使用按提示添加邮件 DNS 记录。 - 在
目标地址 / Destination Addresses添加yourname@qq.com,去该邮箱点击 CF 验证邮件中的链接。 - 返回
路由规则 → 全收 / Catch-all,开启全收,操作选择发送到电子邮件,目标选择刚验证的邮箱,保存。 - 用另一个邮箱给
test2026@example.com发信,确认目标邮箱收到。
全收无需指向 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 | _dmarc |
v=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,在正式生产环境添加:
| 变量名 | 类型 | 填写内容 |
|---|---|---|
PASSWD |
Secret / 机密 | 自己设置的网页登录密码 |
API_KEY |
Secret / 机密 | 第 2 步复制的 Resend API 密钥 |
DOMAIN |
文本 / 普通变量 | 已验证的域名,如 example.com |
变量名使用大写,DOMAIN 只填域名,不带 https://、@ 或空格。完成后点击 保存并部署。
请填在运行时“变量和机密”,不要填到“构建环境变量”。 首次使用配置这三项即可,不要把密码和密钥写入 GitHub。
第 5 步 登录并测试收发
打开 Worker 的正式访问地址,输入 PASSWD 登录。确认页面顶部发件域名正确,填写:
- 收件人:另一个可收信的邮箱。
- 发件前缀:
hello,不要填完整邮箱。 - 主题和纯文本正文:填写测试内容。
- 其他可选项:先留空,暂不添加附件。
点击发送,对方看到的发件地址就是 hello@example.com。去收件邮箱确认收到,再回复这封邮件,检查 CF 全收目标邮箱是否收到回复。
以后将前缀换成 support,即可使用 support@example.com 收发,无需重新部署。前缀建议先用英文字母和数字。
在 QQ 等目标邮箱直接回复来信时,通常会使用该邮箱自己的地址。要继续用域名身份,请回到 Mail-CF 写信,填写对应的发件前缀。首次测试时
Reply-To留空。
常见问题
- 登录失败或域名未配置: 检查运行时变量是否填写正确并已保存部署。
- 发信失败: 检查 Resend 域名是否 Verified、密钥权限是否正确、账户是否还有额度。
- 收不到邮件: 检查目标邮箱验证、全收开关和 CF 收信 MX,再查看垃圾邮件。
- 部署失败: 核对第 3 步设置,确认使用完整仓库。
- 持续提示请求频繁: 稍等再试;若仍然出现,检查 Worker 的“绑定”中是否有
RATE_LIMITER。
glzjin's blog
文章评论