IMAP电子邮件归档系统Mail-Archiver

简介

什么是 Mail-Archiver ?

Mail-Archiver 是一个用于从多个 IMAP 账户归档、搜索和导出电子邮件的 web 应用程序。它提供了一种全面的解决方案,帮助用户管理和存储电子邮件。

主要特点

  1. 📌自动归档 :自动归档进出邮件,支持多个 IMAP 账户。
  2. 📎存储内容与附件:存储电子邮件内容及其附件,确保数据完整性。
  3. 🔄文件夹同步:支持文件夹同步,定期以可配置的时间间隔进行同步。
  4. 🔍高级搜索功能:可以根据日期范围、发件人、收件人等条件搜索归档的电子邮件。
  5. 📊仪表板与统计:提供账户特定的统计和概述,监控存储使用情况和发件人分析。
  6. 📤导出功能 :支持将单个电子邮件导出为 EML 格式,以及将搜索结果批量导出为 CSVJSON 格式。
  7. 📧邮件恢复功能:允许将选定的电子邮件或整个邮箱恢复到目标邮箱。
  8. 📱响应式用户界面:设计为适应移动和桌面设备的用户界面。

应用场景

  • 企业邮件管理:适用于需要集中管理和归档大批量电子邮件的企业,确保信息的可追溯性和合规性。
  • 个人邮件归档 :个人用户可以使用 Mail-Archiver 来管理多个电子邮件账户,确保重要邮件的备份。
  • 数据迁移 :在更换邮件服务提供商时,Mail-Archiver 支持邮箱迁移,方便用户将邮件从一个账户转移到另一个账户。
  • 邮件搜索与分析:可用于需要快速搜索和分析大量邮件的场景,例如法律合规审核或市场调研。

Mail-Archiver 是一个功能强大且灵活的工具,适合个人和企业用户使用,以提高邮件管理的效率和安全性。

安装

在群晖上以 Docker 方式安装。

本文写作时, s1t5/mailarchiver:latest 版本对应为 2507.1

涉及到两个容器,采用 docker-compose 方式安装

appsettings.json

appsettings.json 为设置文件,包含了数据库、用户设置等

  1. 数据库需要根据 docker-compose.ymlpostgres 数据库的环境变量设置进行修改
  2. 登录用户可根据自己的需要设置用户名和密码,下面的示例为 admin/secure123!
json 复制代码
{
  "ConnectionStrings": {
    "DefaultConnection": "Host=postgres;Database=MailArchiver;Username=mailuser;Password=masterkey"
  },
  "Authentication": {
    "Enabled": true,
    "Username": "admin",
    "Password": "secure123!",
    "SessionTimeoutMinutes": 60,
    "CookieName": "MailArchiverAuth"
  },
  "MailSync": {
    "IntervalMinutes": 5,
    "TimeoutMinutes": 60,
    "ConnectionTimeoutSeconds": 180,
    "CommandTimeoutSeconds": 300
  },
  "BatchRestore": {
    "AsyncThreshold": 50,
    "MaxSyncEmails": 150,
    "MaxAsyncEmails": 50000,
    "SessionTimeoutMinutes": 30,
    "DefaultBatchSize": 50
  },
  "Npgsql": {
    "CommandTimeout": 600
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件

yaml 复制代码
services:
  mailarchive-app:
    image: s1t5/mailarchiver:latest
    container_name: mailarchive-app
    restart: always
    ports:
      - "5545:5000"
    volumes:
      - ./appsettings.json:/app/appsettings.json
      - ./logs:/app/logs
    depends_on:
      postgres:
        condition: service_healthy

  postgres:
    image: postgres:17-alpine
    container_name: mailarchive-db
    restart: always
    environment:
      POSTGRES_DB: MailArchiver
      POSTGRES_USER: mailuser
      POSTGRES_PASSWORD: masterkey
    volumes:
      - ./data:/var/lib/postgresql/data
    ports:
       - "5544:5432"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U mailuser -d MailArchiver"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s

然后执行下面的命令

bash 复制代码
# 新建文件夹 mailarchiver 和 子目录
mkdir -p /volume1/docker/mailarchiver/{data,logs}

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

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

# 一键启动
docker-compose up -d 

运行

在浏览器中输入 http://群晖IP:5545 就能看到登录界面

json 复制代码
    "Username": "admin",
    "Password": "secure123!",

切换到 Accounts --> Add Account

填写邮件信息

88 邮件为例

  • Account Name:名称
  • Email Address:邮件地址
  • IMAP Serverimap 服务器地址
  • Username:邮件账号
  • Password:邮件密码

保存之后

Sync

回到主界面会看到一些统计信息

参考文档

s1t5/mail-archiver: Mail-Archiver is a web application for archiving, searching, and exporting emails from multiple IMAP accounts. Featuring folder sync, attachment support, mailbox migration and a dashboard.

地址:https://github.com/s1t5/mail-archiver
My self hosted E-Mail archive : r/selfhosted

地址:https://www.reddit.com/r/selfhosted/comments/1lveeub/my_self_hosted_email_archive/

相关推荐
MyFreeIT4 小时前
Docker Network
运维·docker·容器
ezreal_pan4 小时前
Docker 多容器日志统一查看
运维·docker·容器
叫我弓木吉5 小时前
从零开始:在宝塔面板上搭建你的专属隐私搜索引擎(SearXNG)
搜索引擎·docker·容器·开源·mango
名字还没想好☜9 小时前
kubectl 排障实战:jsonpath 精准取值、custom-columns、events 排序与 top 速查
运维·前端·chrome·docker·kubernetes
無法複制10 小时前
Windows10安装配置Docker Desktop教程
运维·docker·容器
Java.熵减码农13 小时前
MySQL 远程连接故障排查全记录(Linux + Docker + Navicat)
linux·mysql·docker
莫陌尛.13 小时前
StarRocks Iceberg MinIO S3 301报错完整修复文档(Docker环境)
java·docker·容器
Java后端的Ai之路13 小时前
09、Python组合模式
开发语言·人工智能·python·docker·组合模式
Lyra_Infra1 天前
MySQL Docker 误删恢复:binlog PITR
mysql·docker·命令行
wxchyy1 天前
手把手教你入门云计算(二):这些技术改变了世界,你也能轻松掌握
hadoop·阿里云·docker·云原生·华为云·云计算·运维开发