邮件归档与全文检索利器Bichon

本文软件由网友 P家单推人 推荐;

简介

什么是 Bichon ?

Bichon 是一个用 Rust 编写的轻量级、高性能的电子邮件归档系统,并提供了一个现代化的 WebUI。它的主要功能是从 IMAP 服务器同步您的电子邮件,为它们建立索引以实现快速的全文搜索,并提供一个 REST API 以便进行编程访问。不同于常规的邮件客户端,Bichon 专注于邮件的历史归档和搜索,而不是实时收发。它作为一个独立的服务器应用,可以持续同步您配置的邮件账户,并维护一个可搜索的本地副本。

主要特点

  • 轻量与独立:使用 Rust 构建,零外部依赖,单个可执行文件包含了后端和 WebUI。
  • 多账户支持:能够从多个邮件账户同步和下载邮件。
  • 强大认证:支持 IMAP 密码或 OAuth2 登录,并为 OAuth2 提供了内置的 WebUI 授权流程。
  • OpenAPI 支持:提供可编程访问的 OpenAPI,方便与其他系统集成。
  • 统一搜索: 强大的多账户搜索功能,可以按发件人、附件、大小、日期、主题和正文等多种条件进行搜索。
  • 标签与层次化管理:利用标签来组织邮件,高效过滤和定位。
  • 高效存储:对邮件内容进行透明的压缩和去重,节省存储空间。
  • 邮件管理:支持批量清理本地归档,下载 .eml 格式的原始邮件或单个附件。
  • 数据洞察:提供仪表盘,可视化邮件统计数据,如数量、时间分布、热门发件人等。
  • 国际化WebUI 已被翻译成 17 种语言。

应用场景

  • 个人邮件备份: 长期、可靠地备份来自多个邮箱(如 Gmail, Outlook, QQ邮箱)的所有邮件。
  • 知识管理: 将邮件作为个人知识库的一部分,随时进行全文检索,快速找到所需信息。
  • 隐私保护: 在本地保留邮件副本,即使云端邮件被删除或服务不可用,也能保证数据安全。
  • 开发者集成: 通过其 OpenAPI 与其他应用或工作流集成。

Bichon 是一个功能强大且灵活的解决方案,适合需要长期存储及管理电子邮件的用户和组织。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 rustmailer ,选择第二个 rustmailer/bichon,版本选择 latest

本文写作时, latest 版本对应为 0.1.1

docker 文件夹中,创建一个新文件夹 bichon,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/bichon/data /data 存放应用数据、配置和索引文件等

端口

本地端口不冲突就行。

本地端口 容器端口
15630 15630

环境

变量 说明
BICHON_LOG_LEVEL info 日志级别
BICHON_ROOT_DIR /data 数据存储目录
BICHON_CORS_ORIGINS http://群晖IP:15630 重要: 设置为你的访问地址

如果不设置 BICHON_CORS_ORIGINS 或者设置错误,会导致页面上进入二级菜单会显示错误

更多的环境变量,请参考官方文档:https://github.com/rustmailer/bichon/wiki/Configuration-Reference#bichon-configuration-reference

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新建文件夹 bichon 和 子目录
mkdir -p /volume1/docker/bichon/data

# 进入 bichon 目录
cd /volume1/docker/bichon

# 运行容器
docker run -d \
--name bichon \
-p 15630:15630 \
-v $(pwd)/data:/data \
-e BICHON_LOG_LEVEL=info \
-e BICHON_ROOT_DIR=/data \
-e BICHON_CORS_ORIGINS=http://your_nas_ip:15630 \
rustmailer/bichon:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3'

services:
bichon:
image: rustmailer/bichon:latest
container_name: bichon
restart: unless-stopped
ports:
- 15630:15630
volumes:
- ./data:/data
environment:
- BICHON_LOG_LEVEL=info
- BICHON_ROOT_DIR=/data
# 重要:取消下面的注释并替换为你的访问地址,例如 http://192.168.0.197:15630
# - BICHON_CORS_ORIGINS=http://your_nas_ip:15630

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 bichon 和 子目录
mkdir -p /volume1/docker/bichon/data

# 进入 bichon 目录
cd /volume1/docker/bichon

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:15630 就能看到主界面。

如果不能自动识别为中文,可以手动切换

现在看起来是不是顺眼多了

接下来需要添加你的 IMAP 邮箱账户

还是以 88 邮箱为例

使用了 SSL 协议和端口号

认证方式选择了 Password

GmailOutlook 支持 OAuth2 认证方式。需要先在 Google Cloud Console(针对 Gmail)和 Microsoft Azure Portal(针对 Outlook)分别创建 OAuth 2.0 应用凭证,包括客户端 ID和客户端密钥,再配置相应的回调地址和权限范围

同步偏好默认就行

账号创建成功后

就可以同步邮件了

可以选择需要同步的文件夹

如果设置没问题,可以在 邮件 中看到对应文件夹中的邮件

尝试搜索包含 mariadb 的邮件

速度很快,需要关闭搜索界面才能看到邮件

回到仪表板

参考文档

rustmailer/bichon: Bichon – A lightweight, high-performance Rust email archiver with WebUI
地址:https://github.com/rustmailer/bichon

Home · rustmailer/bichon Wiki
地址:https://github.com/rustmailer/bichon/wiki