剪藏#剪藏

域名邮箱转到Gmail被丢垃圾邮件?来试试用Telegram Bot接收域名邮件吧

2026 年 5 月 21 日1 分钟
分享Twitter / XTelegram微博
域名邮箱转到Gmail被丢垃圾邮件?来试试用Telegram Bot接收域名邮件吧 封面

遇到的问题

我一直在用 Cloudflare Email Routing 将域名邮箱转发到 Gmail,方便管理多个邮箱地址。配置很简单,用起来也挺好——直到我发现了一个严重的问题:

丢!邮!件!

很多正规平台的邮件都收不到了:

一开始我以为是 Cloudflare 转发失败,但检查后发现 Cloudflare 显示「成功转发」,Gmail 的「所有邮件」里也找不到。最后才发现 它们全在垃圾邮件箱里!

更离谱的是,Gmail 莫名其妙把这些正规商家的邮件全标记成了 Spam(垃圾邮件)。

为什么会这样?

经过研究发现,这是使用 Cloudflare Email Routing + Gmail 转发方案的通病:

  1. SPF/DKIM 验证问题:邮件经过 Cloudflare 转发后,原始发件人的验证信息可能不完整,Gmail 会觉得可疑

  2. 第三方转发的信誉问题:Gmail 对经过中转的邮件更加谨慎,特别是金融类邮件

  3. Catch-all 带来的问题:接收所有邮件意味着可能混入真正的垃圾邮件,降低了地址的信誉评分

虽然可以手动标记「不是垃圾邮件」来训练 Gmail,但治标不治本——谁知道下次重要邮件会不会又被吞掉?

解决方案:mail2telegram

在 X 上看到有人推荐了一个项目: mail2telegram

这个方案的思路很简单:

  • 邮件不转发到 Gmail,而是通过 Cloudflare Workers 直接发送到 Telegram Bot

  • 在 Telegram 里查看邮件,支持纯文本和 HTML 格式

  • 还能用 AI 生成邮件摘要

  • 完全免费(利用 Cloudflare 和 Telegram 的免费额度)

最重要的是:不经过 Gmail,就不会有垃圾邮件问题!

部署教程

准备工作

你需要:

  • ✅ Node.js、yarn@1

  • ✅ 一个 Telegram 账号

  • ✅ 一个 Cloudflare 账号

  • ✅ 一个在 Cloudflare 托管的域名

第一步:创建 Telegram Bot
  1. 在 Telegram 中搜索 @BotFather 并打开对话

  2. 发送 /newbot 创建新 Bot

  3. 按提示输入:

  • Bot 显示名称(例如: My Mail Bot

  • Bot 用户名(必须以 bot 结尾,例如: mymail123_bot

  1. 创建成功后,BotFather 会给你一个 Token,类似这样:
TEXT
	7123456780:AAjkLAbvSgDdfsDdfsaSK0_example
	```
	**把这个 Token 保存好**,后面要用

1. 获取你的 Telegram ID:

- 搜索 `@userinfobot` 并发送 `/start`
	- 它会返回你的 ID(一串数字,例如: `123456789`)

- **保存这个 ID**

##### 第二步:安装工具

打开终端(Mac)或命令提示符(Windows),执行:

```plain text
# 安装 Yarn 1.x(这个项目需要 Yarn 1)
npm install -g yarn@1

# 安装 Cloudflare Workers CLI
npm install -g wrangler

# 验证安装
yarn -v      # 应显示 1.22.x
wrangler -v  # 应显示 4.x.x 或更高
第三步:登录 Cloudflare

打开终端,执行:

PLAIN
wrangler login

这会自动打开浏览器,要求你授权。点击「允许」即可完成登录。

验证登录成功:

PLAIN
wrangler whoami

如果显示你的邮箱信息,说明登录成功!


❓ 遇到问题?如果你的环境无法打开浏览器 (比如使用远程服务器),可以使用 API Token 方式:

点击展开:使用 API Token 登录的方法

创建 API Token
  1. 登录 Cloudflare Dashboard

  2. 点击右上角头像 → 我的个人资料

  3. 左侧菜单选择 API 令牌

  4. 点击 创建令牌

  5. 找到 编辑 Cloudflare Workers 模板,点击 使用模板

  6. 权限配置(通常已预设好):

  • 账户 - Cloudflare Workers Scripts - 编辑
    • 账户 - Cloudflare Workers KV Storage - 编辑
  1. 账户资源选择 所有账户

  2. 点击 继续以显示摘要创建令牌

  3. 复制并保存这个 Token (只会显示一次!)

配置 Token

Mac/Linux 用户:

编辑你的 shell 配置文件( ~/.zshrc~/.bashrc),添加:

PLAIN
export CLOUDFLARE_API_TOKEN="你的_API_Token"

保存后执行:

PLAIN
source ~/.zshrc  # 或 source ~/.bashrc

Windows 用户:

  1. 搜索并打开「环境变量」设置

  2. 在「用户变量」中点击「新建」

  3. 变量名: CLOUDFLARE_API_TOKEN

  4. 变量值:你的 API Token

  5. 确定保存

  6. 重新打开命令提示符

验证:

PLAIN
wrangler whoami

第四步:创建 KV 数据库

在终端执行:

PLAIN
wrangler kv namespace create "DB"

会返回类似这样的结果:

PLAIN
✨ Success!
Add the following to your configuration file:
{ binding = "DB", id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }

把这个 **id** 保存下来,待会要用。

第五步:下载并配置项目
下载项目

选择一个你喜欢的目录,执行:

PLAIN
git clone https://github.com/TBXark/mail2telegram.git
cd mail2telegram

如果没有 git,可以直接从 GitHub 页面 下载 ZIP 并解压。

安装依赖
PLAIN
yarn install
配置项目
  1. 复制配置模板:
TEXT
	cp wrangler.example.jsonc wrangler.jsonc
	```

1. 编辑 `wrangler.jsonc` 文件,填入以下信息:
TEXT
{
  "name": "mail2telegram",
  "main": "src/index.ts",
  "compatibility_date": "2024-01-01",
  "kv_namespaces": [
    {
      "binding": "DB",
      "id": "你的_KV_ID"  // ← 第四步获取的 ID
    }
  ],
  "vars": {
    "TELEGRAM_ID": "你的_Telegram_ID",  // ← 第一步获取
    "TELEGRAM_TOKEN": "你的_Bot_Token",  // ← 第一步获取
    "DOMAIN": "",  // ← 先留空
    "MAIL_TTL": "259200",  // ← 邮件缓存保留时间(秒)。过期后邮件将无法预览,如果需要保存,务必填写上面的FORWARD_LIST的值为自己的真实邮箱
  }
}
```

保存文件。

第六步:部署 Worker
PLAIN
wrangler deploy

部署成功后,会显示你的 Worker 地址:

PLAIN
https://mail2telegram.你的用户名.workers.dev

记下这个地址!

更新 DOMAIN 配置

编辑 wrangler.jsonc,把 DOMAIN 改成刚才的地址( 不带 https://):

PLAIN
"DOMAIN": "mail2telegram.你的用户名.workers.dev"

保存后重新部署:

PLAIN
wrangler deploy
第七步:绑定 Telegram Webhook

在浏览器中访问: https://mail2telegram.你的用户名.workers.dev/init

如果看到这样的返回,说明成功:

PLAIN
{"ok":true,"result":true,"description":"Webhook was set"}
第八步:设置 Bot 隐私政策

这是使用 Telegram 小程序的必需步骤:

  1. 在 Telegram 找到 @BotFather

  2. 发送 /mybots

  3. 选择你的 Bot

  4. 选择 Edit BotEdit Privacy Policy

  5. 输入: https://telegram.org/privacy-tpa

第九步:配置 Cloudflare Email Routing
启用 Email Routing
  1. 登录 Cloudflare Dashboard

  2. 选择你的域名

  3. 左侧菜单: 电子邮件电子邮件路由

  4. 点击 启用电子邮件路由

  5. 按提示添加 DNS 记录(Cloudflare 会自动处理)

配置 Catch-all 规则
  1. 在 Email Routing 页面,点击 路由规则 标签

  2. 找到 全部地址 (Catch-all address)

  3. 点击 编辑

  4. 操作 选择: 发送到 Worker

  5. Worker 下拉框选择: mail2telegram

  6. 保存

第十步:测试
  1. 从任意邮箱发送测试邮件到: test@你的域名.com

  2. 打开 Telegram,应该会收到 Bot 发来的消息,包含:

  • 邮件标题
    • 发件人
    • 收件人
    • 四个按钮: PreviewSummaryTextHTML
  1. 点击按钮可以:
  • Preview:直接在 Telegram 预览纯文本内容

    • Summary:AI 生成邮件摘要(需配置 AI)
  • Text:网页查看纯文本

    • HTML:网页查看富文本格式

成功!🎉

推荐配置

添加邮件备份

邮件并 不是持久的存在Cloudflare的,如果你按着上面的配置,邮件将会在72小时后缓存失效(之前配置的 MAIL_TTL 字段),再也无法看到,所以 强烈建议 同时备份到自己的邮箱中:

编辑 wrangler.jsonc,添加:

PLAIN
"FORWARD_LIST": "your_backup@gmail.com"

记得在 Cloudflare Email Routing 的「目标地址」中 添加并验证这个邮箱

启用 AI 摘要

我这里使用OpenRouter的Claude Haiku 4.5作为总结模型

编辑 wrangler.jsonc,添加:

PLAIN
"OPENAI_API_KEY": "你的AI供应商的Key",
"OPENAI_CHAT_MODEL": "anthropic/claude-haiku-4.5",
"SUMMARY_TARGET_LANG": "chinese"
"OPENAI_COMPLETIONS_API": "https://openrouter.ai/api/v1/chat/completions",

并在 wrangler.jsonc 添加 AI 绑定:

PLAIN
"ai": {
  "binding": "AI"
}

每次修改完配置后,保存文件,执行以下命令重新部署,让配置生效

PLAIN
wrangler deploy
管理黑白名单

在 Bot 中发送任意消息,会看到一个小程序入口,可以:

  • 管理黑名单(屏蔽特定发件人)

  • 管理白名单(只接收特定发件人)

  • 测试地址是否会被拦截

无限邮箱地址

你可以用不同的邮箱地址注册不同服务:

  • amazon@你的域名.com - 用于亚马逊

  • netflix@你的域名.com - 用于 Netflix

  • work@你的域名.com - 用于工作

所有邮件都会发到同一个 Telegram Bot,但你能清楚地知道是哪个地址收到的。

安全注意事项
  1. 邮件缓存时间:72 小时后,邮件预览链接会失效,如果不设置则是默认24小时,我上面设置了259200的缓存秒数,所以是72小时(可通过 MAIL_TTL 调整)

  2. HTML 模式:查看 HTML 邮件时可能包含跟踪脚本,建议只在确认安全时使用

  3. 备份重要邮件:建议设置 FORWARD_LIST 备份到其他邮箱

🎯 总结

使用 mail2telegram 后,我再也没遇到过重要邮件被误判为垃圾邮件的问题。Telegram 的通知也比 Gmail 更及时,查看邮件更方便。

唯一的小缺点是不支持附件预览,但对于大多数验证码、通知类邮件来说完全够用了。如果需要处理附件,可以配合 FORWARD_LIST 同时转发到其他邮箱。

如果你也被 Gmail 的垃圾邮件过滤困扰,强烈推荐试试这个方案!


项目地址https://github.com/TBXark/mail2telegram

原文地址: https://lainbo.dev/posts/domain-email-to-telegram-bot/

相关文章