Bichon 是一个用 Rust 编写的开源电子邮件归档系统。它从 IMAP 服务器同步邮件,建立全文搜索索引,并通过 REST API 提供程序化访问能力。与常见的邮件客户端不同,Bichon 不处理邮件的发送或实时通信,而是专注于长期存储、高效检索和跨账户统一管理历史邮件。
它以后台服务的形式运行,持续同步你配置的邮箱账户,并在本地维护一个可搜索的归档库。无需外部数据库或复杂依赖,Bichon 自带 WebUI,开箱即用。

与邮件客户端的本质区别
| 功能 | 传统邮件客户端 | Bichon |
|---|---|---|
| 核心用途 | 收发邮件、实时通信 | 邮件归档、检索、长期管理 |
| 是否支持发信 | ✅ 是 | ❌ 否 |
| 运行模式 | 桌面或移动端应用 | 后台服务(服务器端) |
| 数据存储方式 | 本地缓存 + 服务器同步 | 完整本地归档 |
| 搜索能力 | 基础关键词匹配 | 全文索引 + 多维度高级搜索 |
| 是否提供 API | 通常无 | 完整 REST API + OpenAPI 文档 |
| 多账户支持 | 有限 | 支持跨账户统一搜索 |
简言之:如果你需要长期保存、随时回溯、批量分析邮件内容,Bichon 是更合适的选择;如果你要写邮件、回邮件、处理日程,仍需使用 Outlook、Thunderbird 或 Apple Mail 等客户端。

核心功能一览
- 轻量独立
单一 Rust 二进制文件,无外部依赖。内置 WebUI,启动即用。 - 多账户同步
可同时配置多个 IMAP 账户,按时间范围、邮件数量或指定邮箱灵活同步。 - 安全认证
支持 IMAP 密码和 OAuth2(如 Gmail、Outlook)。WebUI 内置 OAuth2 授权流程,自动刷新令牌,并支持网络代理与自动发现 IMAP 服务器。 - 跨账户全文搜索
支持按账户、发件人、收件人、主题、正文、附件名、邮件大小、日期等维度组合查询,结果跨所有归档账户聚合。 - 标签与分面检索
基于 Tantivy 的分面索引系统,支持为邮件打标签,实现高效过滤和分类浏览。 - 高效存储
采用透明压缩与内容去重技术,在节省磁盘空间的同时保持邮件可直接读取(无需解包)。 - 灵活管理
可批量删除本地归档、下载原始 EML 文件、单独提取附件,或在 WebUI 中查看完整邮件线程。 - 数据看板
可视化统计信息:邮件总量、时间分布、高频发件人、大附件邮件、各账户邮件量排名等。 - 多语言界面
WebUI 支持 17 种语言(包括中文),前端架构支持轻松扩展新语种。注:后端日志与 API 返回内容暂未国际化。 - 程序化访问
提供完整的 OpenAPI 文档,支持访问令牌认证,便于集成到自动化流程或自研系统中。

为什么开发 Bichon?
早在几个月前,开发者发布了 rustmailer —— 一个用于查询邮箱收件人信息的中间件。此后,不少用户希望它能支持邮件归档、全文搜索和跨账户管理。
但 rustmailer 的定位是轻量级邮件 API 中间件,不适合承载复杂的归档逻辑。我意识到,邮件归档其实只需要 rustmailer 的一部分功能,再加上一个搜索引擎。
于是,我基于已有经验,在两周内完成了 Bichon 的核心架构,又用了两周进行测试和优化。现在,它已达到稳定可用状态,并以 MIT 协议开源。
Bichon 完全免费,无任何付费功能或限制。它可能还有不足,但如果你需要一个专注、可靠、可自托管的邮件归档方案,它值得尝试。












评论