项目简介
Bichon 是一个开源的邮件归档系统,专门用于从 IMAP 服务器同步邮件、建立全文索引,并提供 REST API 进行程序化访问。与传统的邮件客户端不同,Bichon 专注于邮件的归档和搜索功能,而不是发送和接收邮件。
核心功能
🚀 轻量级独立部署
- 纯 Rust 实现,单机应用程序
- 无需外部数据库
- 内置 WebUI 提供直观管理界面
📬 多账户管理
- 支持同步和下载多个账户的邮件
- 灵活选择:按日期范围、邮件数量或特定邮箱同步
🔑 IMAP 和 OAuth2 认证
- 支持 IMAP 密码或 OAuth2 登录
- 内置 WebUI 进行 OAuth2 授权,包括自动令牌刷新(如 Gmail、Outlook)
- 支持 IMAP 和 OAuth2 的网络代理
- 自动 IMAP 服务器发现和配置
🔍 统一多账户搜索
- 强大的跨账户搜索功能:账户、邮箱、发件人、附件名称、是否有附件、大小、日期、主题、正文
🏷️ 标签和分面
- 使用基于 Tantivy 分面的标签组织归档邮件
- 高效地基于这些分面标签过滤和定位邮件
💾 压缩和去重存储
- 通过透明压缩和去重高效存储邮件
- 邮件可直接读取,无需额外步骤
📂 邮件管理和查看
- 本地归档的批量清理
- 下载邮件为 EML 格式或单独下载附件
- 直接查看和浏览邮件
- 查看任何邮件的完整对话线程
📊 仪表板和分析
- 可视化邮件统计:数量、时间分布、顶级发件人、最大邮件、账户排名
🌐 国际化支持
- WebUI 完全支持 17 种语言的所有界面元素
🛠️ OpenAPI 支持
- 提供 OpenAPI 文档
- 访问令牌认证支持程序化访问
技术架构
整体架构
Bichon 采用前后端分离的架构,后端基于 Rust 构建,前端使用现代 React 技术栈。
后端技术栈
- 核心语言:Rust
- Web 框架:Poem + poem-openapi
- 存储和搜索引擎:Tantivy(作为邮件内容的主要存储和全文搜索索引)
- 元数据存储:Native_DB(专用于轻量级配置和账户元数据)
- 邮件协议:IMAP(支持标准密码和 OAuth2)
前端技术栈
- 框架:React + TypeScript + Vite + ShadCN UI
- 国际化:支持多语言,包括中文
系统组件
认证系统
- 支持根令牌系统,提供系统级管理访问
- 访问令牌认证用于程序化 API 访问
- OAuth2 集成支持现代邮件提供商
数据管理
- 支持加密存储敏感数据
部署支持
提供 Docker 部署方式,基于 Ubuntu 24.04 镜像构建
Notes
- Bichon 使用 AGPLv3 许可证开源
- 项目活跃维护,提供 Discord 社区支持
- WebUI 访问地址默认为 http://localhost:15630
- 支持多种部署方式,包括 Docker 和直接二进制部署