V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Joeyyyyyyy
V2EX  ›  分享创造

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

  •  
  •   Joeyyyyyyy · 5 天前 · 1207 次点击

    契机很简单: 放在写字台的 Kindle 吃灰许久,连泡面的功能都要失效了。心血来潮给它充满电,却发现——图书馆坏了

    一查才知道: 👉 Kindle 中国区服务停止运行 👉 原账号无法继续使用 Send-to-Kindle 推送

    重新激活功能的方式网上已经有很多教程了: 核心流程是:

    1. 注销中国区账号
    2. 注册美国区或其他地区账号
    3. 在亚马逊官网重新添加“受信任邮箱”(如 QQ 、163 等)
    4. 即可继续使用 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 自动化部分整的不太好,佬友们有好的方案大家多讨论,感谢感谢。

    6 条回复    2025-12-01 14:19:57 +08:00
    jsomin
        1
    jsomin  
       5 天前 via iPhone
    看起来还不错?晚上试试看
    PRStarDust
        2
    PRStarDust  
       5 天前
    我印象中,安卓这边只要安装一下 kindle 的 app ,就可以通过系统分享功能传书……
    Joeyyyyyyy
        3
    Joeyyyyyyy  
    OP
       5 天前
    @PRStarDust 嗯呢 需要是非国区的可以 这个是方便全在手机端操作了的 之前是可以
    dfdd1811
        4
    dfdd1811  
       5 天前
    才知道退出大陆老哥你的 kindle 不是吃灰是压箱底了🤡
    yulgang
        5
    yulgang  
       5 天前
    我是换账号的时候把书都搞没了。。。。
    bearbest
        6
    bearbest  
    PRO
       5 天前   ❤️ 1
    @yulgang 官网买的书是跟账号绑定的,需要在电脑上导出,然后全部发送到新的账号上
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1122 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:51 · PVG 01:51 · LAX 09:51 · JFK 12:51
    ♥ Do have faith in what you're doing.