Mailbox 是一个基于 Electron Forge、Vite 和 React 的桌面邮箱收信客户端。当前阶段优先覆盖 Hotmail/Outlook.com 收信账号导入、IMAP 同步、邮件阅读、搜索和本地账号存储。
- Hotmail/Outlook.com 收信账号导入:支持按自定义分隔符批量粘贴
邮箱、密码、clientId、refreshToken,在导入前展示逐行解析结果,并通过真实 IMAP/XOAUTH2 验证后再保存账号。 - 本机账号与凭据存储:账号、文件夹状态、缓存邮件和搜索索引保存在本机 SQLite;密码和 OAuth refresh token 由主进程侧加密处理,不会回显到渲染层界面。
- IMAP 文件夹同步:进入邮箱后读取账号文件夹,优先展示收件箱等收信工作流常用文件夹;首次打开文件夹会同步远端邮件,后续优先读取本地缓存,也可手动刷新当前文件夹。
- 三栏邮件阅读工作台:桌面端按账号/文件夹、邮件列表、阅读面板组织信息;阅读邮件会更新已读状态,正文支持文本与 HTML 原文视图,附件可另存到本机。
- 本地搜索与邮件处理:支持搜索已同步邮件,并对列表中的邮件执行移到垃圾箱、从垃圾箱移回收件箱、永久删除等操作;这些操作通过主进程真实邮件协议能力执行,失败会显式暴露。
- 当前边界:产品主线是收信客户端,SMTP/发信流程不作为当前默认工作流;后续发信能力需要重新设计后再纳入主流程。
这张快照展示当前账号设置界面:左侧保留桌面应用设置导航,右侧聚焦 Hotmail 收信账号管理。用户可以从这里导入账号文本,应用会在保存前完成真实验证;账号配置保存在本机,密码等凭据由主进程侧处理,不回显到界面。
- Electron Forge + Vite 负责桌面应用启动、打包和 renderer 开发服务。
- React 19、TanStack Router、Tailwind CSS 和 shadcn/ui 负责渲染层。
- oRPC + Zod 负责 renderer 与主进程之间的类型化 IPC 契约。
- IMAPFlow、mailparser 和本地 SQLite 存储负责收信、解析和缓存邮件数据。
安装依赖:
bun install启动开发环境:
bun run start常用检查:
bun run check
bun run test
bun run test:e2esrc/main/host/: Electron 主进程侧能力,包括窗口、账号存储、邮件协议、日志、代理、通知和附件缓存。src/ipc/: IPC schema、handler 和路由。src/actions/: renderer 调用 IPC 的 action 封装。src/features/mailbox/: 邮箱首页、邮件列表、阅读面板和同步状态。src/features/settings/: 设置页、账号导入和账号管理界面。docs/architecture/: 项目结构、feature-first、type-first 和 UI 色彩系统约束。docs/plan/: 非平凡实现和排查任务的计划文档。
bun run package
bun run makebun run publish 只在明确需要发布时运行。
MIT