契机很简单: 放在写字台的 Kindle 吃灰许久,连泡面的功能都要失效了。心血来潮给它充满电,却发现图书馆坏了。
一查才知道: Kindle 中国区服务停止运行 原账号无法继续使用 Send-to-Kindle 推送
重新激活功能的方式网上已经有很多教程了: 核心流程是:
- 注销中国区账号
- 注册美国区或其他地区账号
- 在亚马逊官网重新添加“受信任邮箱”(如 QQ 、163 等)
- 即可继续使用 Send-to-Kindle 推送
推荐参考这篇总结得非常清楚的文章: Kindle 终止中国在线服务:如何换区和继续使用推送服务
推书很方便了,那能不能更方便?
账号换好以后,通过 Send-to-Kindle 邮箱推送书籍又恢复正常了。 但作为一名程序员,我想着:
能不能做到完全在手机上操作? 甚至一键把书推送到 Kindle ?
于是我继续搜,果然在 B 站找到了一个非常好的思路:
里面提到可以使用一个 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 自动化部分整的不太好,佬友们有好的方案大家多讨论,感谢感谢。
