Bichon:轻量级高性能邮件归档系统

86 阅读2分钟

项目简介

Bichon 是一个开源的邮件归档系统,专门用于从 IMAP 服务器同步邮件、建立全文索引,并提供 REST API 进行程序化访问。与传统的邮件客户端不同,Bichon 专注于邮件的归档和搜索功能,而不是发送和接收邮件。

项目地址github.com/rustmailer/…

核心功能

🚀 轻量级独立部署

  • 纯 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 和直接二进制部署