✨ Kindle 两次吃灰后,我做了一个完全免费的 Kindle 推送 & 标注转换机器人(开源)

契机很简单: 放在写字台的 Kindle 吃灰许久,连泡面的功能都要失效了。心血来潮给它充满电,却发现——图书馆坏了。 一查才知道: 👉 Kindle 中国区服务停止运行 👉 原账号无法继续使用 Send-to-Kindle 推送 重新激活功能的方式网上已经有很多教程了: 核心流程是:

注销中国区账号 注册美国区或其他地区账号 在亚马逊官网重新添加“受信任邮箱”(如 QQ 、163 等) 即可继续使用 Send-to-Kindle 推送

推荐参考这篇总结得非常清楚的文章: 🔗 Kindle 终止中国在线服务:如何换区和继续使用推送服务

📚 推书很方便了,那能不能更方便? 账号换好以后,通过 Send-to-Kindle 邮箱推送书籍又恢复正常了。 但作为一名程序员,我想着:

能不能做到完全在手机上操作? 甚至一键把书推送到 Kindle ?

于是我继续搜,果然在 B 站找到了一个非常好的思路: 🔗 电子书迷们看过来:Kindle 退出中国怎么办? 里面提到可以使用一个 Telegram Bot 来转发书籍。我试了一下——确实非常好用!上传书的同时还能直接推送到 Kindle ,非常爽。 结果…… 上传第二本的时候 👇

开始收费了 🥲 作为程序员,我突然血压就上来了:

这不就是一个 “收文件 → 发邮件” 的服务吗?我完全可以自己写一个。

于是我就真的开写,并把它完全免费开源出来了:

🚀 Kindle Mailman:一个完全免费的 Kindle 推送 & 标注 Markdown 转换服务 📦 项目地址(欢迎 star ): 👉 https://github.com/xiaolonggee/kindle_mailman 核心能力如下:

✉️ 1. Telegram → Kindle 推送 后端提供 /api/telegram:

接收 bot 上传的附件( mobi / epub / pdf ) 识别指令、参数 自动转发到你的 Kindle 邮箱 无需本地设备,手机就能完成推书

简单一句话: 你发给 bot 一本书,它就会自动推送到你的 Kindle 。

🔄 2. 邮箱轮询:自动收爆款功能——Kindle 标注解析 通过 /api/check-mail + Vercel Cron ,实现自动轮询 Gmail:

登录 Gmail (使用 OAuth Refresh Token )

查找满足条件的邮件:

“未读” “来自可信发件人 TRUSTED_SENDER_EMAIL” “有 .html 附件( Kindle Notebook 导出)”

解析 HTML → 自动生成 Markdown

输出文件名:<书名>.md

解析内容包含:

书名 / 作者 划线高亮 用户笔记 页码 / 位置 颜色(黄色/蓝色/粉色…)

📝 3. Markdown 分发:可回 Telegram 、可回 Obsidian Markdown 生成后有两条分发路径: ✔️ 路径 1:发回 Telegram 使用 sendDocument 发送 .md 文件至 OWNER_CHAT_ID。 提交后可以立即在手机 Telegram 中看到完整的 Markdown 内容。 ✔️ 路径 2:可选分发到 Obsidian Inbox (邮箱方式) 将 .md 作为附件发送到: OBSIDIAN_INBOX_EMAIL

你可以结合:

iCloud macOS Mail 规则 或 iOS 快捷指令

实现自动落地到 Obsidian Vault 。

🛡️ 4. 去重逻辑:保证不会重复处理邮件 每当处理完一封邮件:

给它加上标签(默认 ProcessedByKindleBot) 同时标记已读

这样即使 Cron 频率很高,也不会重复消费。

📜 5. 日志 & 容错

如果发件人不可信 → 只记录日志 如果没有 HTML 附件 → 跳过 如果解析失败 → 标记并继续处理下一封

系统足够健壮,跑在 Vercel 上成本极低。

🧠 整体架构图(简化版) (上传书籍) (导出笔记) Telegram → /api/telegram Gmail → /api/check-mail | | ↓ ↓ 转发到 Kindle 邮箱 HTML → Markdown ↓ ↓ Kindle 收书 分发 Markdown | ┌──────────────┬───────────────┐ ↓ ↓ sendDocument 发到 Obsidian 收件箱 (Telegram) (可选)

📦 环境变量说明(简化版) KINDLE_EMAIL TELEGRAM_BOT_TOKEN OWNER_CHAT_ID TRUSTED_SENDER_EMAIL

Gmail OAuth

GMAIL_CLIENT_ID GMAIL_CLIENT_SECRET GMAIL_REFRESH_TOKEN

Obsidian 可选

OBSIDIAN_INBOX_EMAIL

去重标签

PROCESSED_LABEL_NAME=ProcessedByKindleBot

🎉 最终效果

你在手机上把 HTML ( Kindle Notebook 导出)发给 bot 机器人自动生成 Markdown 文件直接发回 Telegram 想保存到 Obsidian → 点一下“保存到文件”即可 再也不用付费、复制、转换、格式化

把阅读 → 记录 → 梳理 → 存档 的路径缩短到几秒钟。

🧩 开源地址(欢迎 Star ) 👉 https://github.com/xiaolonggee/kindle_mailman 如果有想扩展的功能,例如:

按章节导出多文件 自动生成摘要 给标注加标签 Push 到 Notion / Logseq 解析 Markdown 分层结构

也欢迎佬友们提 pr

❤️ 最后 这个项目的初衷很简单:

让 Kindle 的知识流动得更顺畅。

希望这篇文章能帮到同样在用 Kindle 、在做个人知识管理的朋友们。 如果你也正在找“标注自动化处理”方案,这个项目也许能给你一点灵感,现在在 ios 自动化部分整的不太好,佬友们有好的方案大家多讨论,感谢感谢。