一个域名,任意前缀收发邮件|Mail-CF 教程

一个域名,任意前缀收发邮件|Mail-CF 教程

 次点击
13 分钟阅读

Mail-CF 上手教程

Mail-CF 配合 Cloudflare(简称 CF)的“全收”,可以收发自己域名下任意合法前缀的邮件,例如 hello@example.com。来信转发到你已有的邮箱,发信在 Mail-CF 网页中完成。

准备工作

开始前请准备好以下内容:

无需购买服务器。

下文的 example.com 和 yourname@qq.com 均为示例,请替换成自己的域名和邮箱。

第 1 步 开启 CF 全收

  1. 登录 CF,进入 电子邮件服务 → 电子邮件路由,选择自己的域名。首次使用按提示添加邮件 DNS 记录。
  2. 在 目标地址 / Destination Addresses 添加 yourname@qq.com,去该邮箱点击 CF 验证邮件中的链接。
  3. 返回 路由规则 → 全收 / Catch-all,开启全收,操作选择 发送到电子邮件,目标选择刚验证的邮箱,保存。
  4. 用另一个邮箱给 test2026@example.com 发信,确认目标邮箱收到。

全收无需指向 Worker。若域名已有企业邮箱,先确认原有 MX 记录用途,更换收信 MX 会影响原邮箱。CF 全收说明

第 2 步 配置 Resend

验证发信域名

  1. 登录 Resend,进入 Domains → Add Domain,添加同一个域名 example.com。
  2. 进入“填写你的 DNS 记录”页面,保持 “启用发送”开启、“启用接收”关闭。
  3. 打开 CF 的 域名 → DNS → 记录 → 添加记录,参考下表逐条添加。
用途类型名称内容 / 目标
域名验证 DKIMTXTresend._domainkey复制自己 Resend 页面中该行的完整内容
启用发送CNAMErsend复制自己 Resend 页面中该行的完整目标地址
启用发送CNAMEsend复制自己 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

  1. 打开 Mail-CF 项目,点击 Fork 保存到自己的 GitHub;项目所有者可直接使用原仓库。
  2. 在 CF 进入 Workers 和 Pages → 创建应用程序,连接 GitHub,选择自己的 Mail-CF 仓库,创建 Worker。
  3. 按下表填写,点击 保存并部署。
配置项填写内容
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,不要填完整邮箱。
  • 主题和纯文本正文:填写测试内容。
  • 其他可选项:先留空,暂不添加附件。

点击发送,对方看到的发件地址就是 hello@example.com。去收件邮箱确认收到,再回复这封邮件,检查 CF 全收目标邮箱是否收到回复。

以后将前缀换成 support,即可使用 support@example.com 收发,无需重新部署。前缀建议先用英文字母和数字。

在 QQ 等目标邮箱直接回复来信时,通常会使用该邮箱自己的地址。要继续用域名身份,请回到 Mail-CF 写信,填写对应的发件前缀。首次测试时 Reply-To 留空。

常见问题

  • 登录失败或域名未配置: 检查运行时变量是否填写正确并已保存部署。
  • 发信失败: 检查 Resend 域名是否 Verified、密钥权限是否正确、账户是否还有额度。
  • 收不到邮件: 检查目标邮箱验证、全收开关和 CF 收信 MX,再查看垃圾邮件。
  • 部署失败: 核对第 3 步设置,确认使用完整仓库。
  • 持续提示请求频繁: 稍等再试;若仍然出现,检查 Worker 的“绑定”中是否有 RATE_LIMITER。
© 本文著作权归作者所有,未经许可不得转载使用。