Skip to content

MailWeave ​

AI 原生的桌面邮件客户端:把邮件、AI 智能体与 IM 通知织成一张网

当前版本v0.4.0(2026-10-13)
Git 标签v0.4.0(另有 v0.3.0、v0.2.0、v0.1.0)
状态可用(0.4.0,本站不分发安装包,构建步骤见仓库 README)
平台Windows 已验证(msi / exe 安装包);macOS / Linux 同一套 JVM 代码与配置已就位但未出包;Android / iOS / 鸿蒙未启用
技术栈Kotlin Multiplatform + Compose Multiplatform(Desktop/JVM)+ SQLDelight;自研 KMP 原生 IMAP/SMTP/MIME 协议栈(Ktor socket + TLS),可与 Jakarta Mail 引擎热切换;LangChain4j 做 AI 分诊与工具调用;Ollama 可接本地模型
许可木兰 PSL-2.0(Mulan PSL v2)

项目是做什么的 ​

MailWeave 是一个本地桌面邮件客户端,想解决的是「邮件、AI 助手、IM 通知各自为政」这件事:收信、让 AI 分诊与起草、按规则把重要的那几封推到飞书 / 钉钉 / 企微,都在同一个窗口里完成。

0.2.0 起它换了骨架:IMAP / SMTP / MIME 协议栈用 Kotlin Multiplatform 自己实现(Ktor socket + TLS),这样 Android / iOS / 鸿蒙将来可以复用同一套协议层;设置里还能与原来的 Jakarta Mail 引擎热切换,两个引擎共用账户、缓存、AI 分诊与路由规则。

0.3.0 补上了桌面端最要紧的一件事——实时收信:IMAP IDLE 常驻监听,新邮件进来立刻通知,另有定时同步兜底;键盘快捷键也一并补齐,日常可以完全不碰鼠标。

0.4.0 修的是三处「有功能却用不起来」:正文不再被压成纯文本而是按 HTML 排版、附件能按需下载并用系统程序打开、OAuth2 的 Microsoft 设备码与 Google 授权码 + PKCE 两条流程补齐。

数据默认留在本机:邮件缓存、AI 分诊结果、路由日志都进本地 SQLite;不想用云端模型可以把 AI 指向本机 Ollama。

核心能力 ​

  • 正文按邮件真实内容排版:有 HTML 就渲染表格 / 加粗 / 链接 / 列表,纯文本才显示纯文本,两者都有时可一键切换,并纠正「声明 us-ascii / gb2312 却塞 GBK 或 UTF-8」这类国内常见的字符集错标(0.4.0)
  • 附件按需下载(同步阶段仍只存元数据)→ 落盘后用系统默认程序打开,左键 / 右键都能预览(0.4.0)
  • OAuth2 两条流程补齐:Microsoft 走设备码、Google 走授权码 + PKCE + 本机回环,客户端配置按服务商存进凭据库、令牌过期自动刷新(0.4.0)
  • 多账号 IMAP / POP3 / SMTP 收发,内置网易、腾讯、华为云、阿里云、飞书、Gmail、Outlook 等预设,支持 OAuth2(XOAUTH2 与设备码流程)
  • 0.3.0 起桌面端实时收信:IMAP IDLE 常驻监听 + 新邮件系统通知 + 定时同步兜底
  • 自研 KMP 原生邮件协议栈(IMAP / SMTP / MIME / modified UTF-7 全在 commonMain 自己实现),设置里能与 Jakarta Mail 引擎热切换、不用重启
  • AI 分诊:分类(紧急 / 待处理 / 普通 / 垃圾)+ 摘要 + 待办 + 情感 + 回复建议,结果落库展示
  • AI 对话带 6 个工具:searchEmails / sendEmail / draftReply / addLabel / forwardToIM / createCalendarEvent
  • IM 通知桥接:飞书(文本 / 卡片 / 加签)、钉钉(Markdown / 加签)、企微、自定义 Webhook,支持一键测试发送
  • 路由规则引擎:按 AI 分类 / VIP / 会议邀请 / 关键字匹配,同一封邮件同一渠道只推一次,失败原因落库
  • 本地模型:Ollama 直连(无云端 Key 也能跑全流程);AI 抽取会议与截止时间 → 本地提醒,可导出 .ics
  • 键盘优先:Ctrl+N 写信、Ctrl+R / F5 同步、Ctrl+F 聚焦搜索、Ctrl+1..4 切页;列表里 J/K 移动、Enter 打开、U 已读、S 星标

界面截图 ​

点击任意截图可放大查看;截图都是本机真实运行程序后截的。

邮件与阅读区
邮件与阅读区
邮件列表 + 阅读区(左侧文件夹、中间列表、右侧正文与标签)。这张是**应用自身渲染测试的产出**、里面的邮件是合成样例数据——本机没有配任何真实邮箱,也不拿真实邮件做截图
写邮件
写邮件
写信面板:收件人 / 抄送 / 密送、主题、正文、添加附件与「AI 润色」,底部提示发送后由服务器归档到「已发送」(Ctrl+N 呼出)
AI 助手
AI 助手
AI 助手页:可以直接让它「总结今天未读」「找出必须回复的」「检索含发票的邮件」「起草回复」——它背后挂的是 6 个真实工具(检索 / 发信 / 起草 / 打标签 / 转发 IM / 导出日程)
账号预设
账号预设
新增账号:一键预设覆盖网易(163/126/yeah/企业邮)、QQ 与 Foxmail、腾讯企业邮、华为云企业邮箱、阿里云邮箱、飞书、Gmail、Microsoft 365 与 Outlook.com,并直接提示授权码怎么开
AI 模型设置
AI 模型设置
AI 模型:服务商可选 OpenAI / DeepSeek / Qwen / **Ollama** / 自定义,Ollama 可以留空 API Key 直连本机(图中就是本地 qwen2.5:7b),另有「立即分诊未处理邮件」与验证按钮
路由规则
路由规则
路由规则:按 AI 分类触发——「紧急邮件」推全部启用渠道(交互式卡片)、「会议邀请」推企业微信(纯文本)、「待处理邮件」推全部渠道;同一封邮件同一渠道只会推一次
同步与实时收信
同步与实时收信
同步设置:实时收信(IMAP IDLE 常驻监听)开关与说明、定时同步与后台同步间隔
提醒与协议引擎
提醒与协议引擎
提醒卡片(会议提前 15 分钟、到点同时推 IM、不写系统日历)与**邮件协议引擎**切换:Jakarta Mail 与内置 KMP 原生协议栈可热切

关于截图

截图分两类:多数是真实窗口截图(未配置账号状态下的界面,字面意思的「空状态」如实呈现);邮件列表那张是应用自身渲染测试的产出(合成样例数据),因为本机没有配真实邮箱,也不拿真实邮件做素材。采集时临时移开了账号凭据文件、没有登录任何账号、没有收发真实邮件,采集后已还原。

获取方式 ​

暂未提供公开二进制,构建步骤见仓库 README;也可以直接邮件问我。

发版记录 ​