Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mailbox

Mailbox 是一个基于 Electron Forge、Vite 和 React 的桌面邮箱收信客户端。当前阶段优先覆盖 Hotmail/Outlook.com 收信账号导入、IMAP 同步、邮件阅读、搜索和本地账号存储。

功能描述

  • Hotmail/Outlook.com 收信账号导入:支持按自定义分隔符批量粘贴 邮箱、密码、clientId、refreshToken,在导入前展示逐行解析结果,并通过真实 IMAP/XOAUTH2 验证后再保存账号。
  • 本机账号与凭据存储:账号、文件夹状态、缓存邮件和搜索索引保存在本机 SQLite;密码和 OAuth refresh token 由主进程侧加密处理,不会回显到渲染层界面。
  • IMAP 文件夹同步:进入邮箱后读取账号文件夹,优先展示收件箱等收信工作流常用文件夹;首次打开文件夹会同步远端邮件,后续优先读取本地缓存,也可手动刷新当前文件夹。
  • 三栏邮件阅读工作台:桌面端按账号/文件夹、邮件列表、阅读面板组织信息;阅读邮件会更新已读状态,正文支持文本与 HTML 原文视图,附件可另存到本机。
  • 本地搜索与邮件处理:支持搜索已同步邮件,并对列表中的邮件执行移到垃圾箱、从垃圾箱移回收件箱、永久删除等操作;这些操作通过主进程真实邮件协议能力执行,失败会显式暴露。
  • 当前边界:产品主线是收信客户端,SMTP/发信流程不作为当前默认工作流;后续发信能力需要重新设计后再纳入主流程。

界面快照

Mailbox 账号设置界面快照

这张快照展示当前账号设置界面:左侧保留桌面应用设置导航,右侧聚焦 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:e2e

项目结构

  • src/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 make

bun run publish 只在明确需要发布时运行。

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages