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!
{"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 文件

services:mailarchive-app:image: s1t5/mailarchiver:latestcontainer_name: mailarchive-apprestart: alwaysports:- "5545:5000"volumes:- ./appsettings.json:/app/appsettings.json- ./logs:/app/logsdepends_on:postgres:condition: service_healthypostgres:image: postgres:17-alpinecontainer_name: mailarchive-dbrestart: alwaysenvironment:POSTGRES_DB: MailArchiverPOSTGRES_USER: mailuserPOSTGRES_PASSWORD: masterkeyvolumes:- ./data:/var/lib/postgresql/dataports:- "5544:5432"healthcheck:test: ["CMD-SHELL", "pg_isready -U mailuser -d MailArchiver"]interval: 10stimeout: 5sretries: 5start_period: 10s

然后执行下面的命令

# 新建文件夹 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 就能看到登录界面

    "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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91622.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李宏毅深度学习教程 第6-7章 自注意力机制 + Transformer

强烈推荐!台大李宏毅自注意力机制和Transformer详解!_哔哩哔哩_bilibili 目录 1. 词嵌入&问题情形 2. self-attention 自注意力机制 3. 自注意力的变形 3.1 多头注意力(multi-head) 3.2 位置编码 3.3 截断自注意力&…

大模型幻觉的本质:深度=逻辑层次,宽度=组合限制,深度为n的神经网络最多只能处理n层逻辑推理,宽度为w的网络无法区分超过w+1个复杂对象的组合

大模型幻觉的本质:深度逻辑层次,宽度组合限制,深度为n的神经网络最多只能处理n层逻辑推理,宽度为w的网络无法区分超过w1个复杂对象的组合🧩 "深度逻辑层次"具体含义🔢 "宽度组合限制"具…

2419.按位与最大的最长子数组

Problem: 2419. 按位与最大的最长子数组 思路 子数组按位与的结果,不会超过子数组里的最大值(因为 a & b ≤ max(a, b))。 进一步推导,整个数组最大按位与的结果就是数组本身的最大值。 因为最大的那个元素自己作为子数组时&a…

智能时代:先管端点,再谈效率

为什么需要统一端点管理?在混合办公常态化、设备类型爆炸式增长的2025年,分散的端点如同散落各地的哨所。传统管理方式让IT团队疲于应对系统更新、漏洞修复、权限分配等重复劳动,不仅消耗60%以上的运维时间,更可能因响应延迟导致安…

Windows字体simsum.ttf的安装与Python路径设置指南

下载工具: https://fontforge.org/en-US/downloads/windows-dl/ 使用工具: 复制到c:\windows\fonts路径下面。 并复制到运行的python程序同一路径下。比如:c:\pythoncode\new\

GitHub下载项目完整配置SSH步骤详解

GitHub下载项目完整配置步骤(从零开始) 默认下好了git ,在文件夹中右键打开git bash , 如果没有请在csdn搜索教程 第一步:检查并清理现有SSH配置 # 进入.ssh目录 cd ~/.ssh# 备份并删除所有现有密钥(避免冲…

数据结构(9)栈和队列

1、栈 1.1 概念与结构 栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。栈里面的数据元素遵循后进先出的原则。栈的底层实现一般可以使用数组或者链表来实现,但数组的…

湖北大学暑期实训优秀作品:面向美丽中国的数据化可视平台

开发背景2024年1月11日,《中共中央国务院关于全面推进美丽中国建设的意见》发布,明确了建设美丽中国的总体要求、主要目标和重点任务,为我国生态文明建设提供了顶层设计和行动指南。系统简介当前,中国正以空前的力度推进生态文明建…

Ubuntu系统VScode实现opencv(c++)随机数与随机颜色

在图像处理与计算机图形学中,随机数与随机颜色的生成常用于增强图像的多样性、可视化多个目标区域、模拟自然现象以及生成测试数据等任务。通过随机化元素的颜色、位置或形状,可以使程序在动态展示、调试输出、以及数据增强等方面更加灵活和丰富。例如&a…

机器学习、深度学习与数据挖掘:三大技术领域的深度解析

基本概念与历史沿革数据挖掘起源于20世纪90年代,是数据库技术、统计学和机器学习交叉融合的产物。它经历了从简单查询到复杂知识发现的演变过程,早期阶段主要关注数据存储和检索,随着IBM、微软等公司的推动,逐渐形成了完整的知识发…

MoR vs MoE架构对比:更少参数、更快推理的大模型新选择

Google DeepMind 近期发布了关于递归混合(Mixture of Recursion)架构的研究论文,这一新型 Transformers 架构变体在学术界和工业界引起了广泛关注。该架构通过创新的设计理念,能够在保持模型性能的前提下显著降低推理延迟和模型规…

uniapp开发实现【中间放大两边缩小的轮播图】

一、效果展示 二、代码实现 <template><view><!-- 轮播图 --><view class=<

机器学习没有最好的模型,只有最合适的选择(模型选择)

机器学习领域存在"没有免费午餐"定理&#xff0c;没有任何一种模型在所有问题上都表现最优。不同模型有各自的优势和适用场景。同一数据集上&#xff0c;不同模型的预测性能可能有巨大差异。例如&#xff0c;线性关系明显的数据上线性模型可能表现优异&#xff0c;而…

关于人工智能AI>ML>DL>transformer及NLP的关系

一、AI、ML、DL、NLP的极简概念1、人工智能&#xff08;AI&#xff09;有不同的定义&#xff0c;但其中一个定义或多或少已成为共识&#xff0c;即AI是一个计算机系统&#xff0c;它能够执行通常需要人类智能才能完成的任务。根据这个定义&#xff0c;许多算法可以归纳为AI算法…

小迪23-28~31-js简单回顾

前端-js开发 课堂完结后欲复习巩固也方便后续-重游-故写此篇 从实现功能过渡到涉及的相关知识点 知识点 1、 JS 是前端语言&#xff0c;是可以被浏览器“看到”的&#xff0c;当然也可以被修改啊&#xff0c;被浏览器禁用网页的 JS 功能啊之类的。所以一般都是前后端分离开发&…

vue项目预览pdf隐藏工具栏和侧边栏

1.在预览PDF时&#xff0c;PDF查看器通常会显示工具栏、侧边栏等控件。如果想隐藏这些控件&#xff0c;可以通过在PDF文件的URL中添加参数来实现。可以使用#toolbar0和#navpanes0等参数来隐藏工具栏和侧边栏。解释&#xff1a; #toolbar0&#xff1a;隐藏工具栏。#navpanes0&am…

ERP、CRM、OA整合工具哪家好?2025年最新推荐

当前&#xff0c;大多数中大型企业已部署了ERP&#xff08;企业资源计划&#xff09;、CRM&#xff08;客户关系管理&#xff09;、OA&#xff08;办公自动化&#xff09;等核心业务系统。这些系统在各自职能领域内发挥着关键作用&#xff1a;ERP管理财务、供应链与生产&#x…

设计模式:命令模式 Command

目录前言问题解决方案结构代码前言 命令是一种行为设计模式&#xff0c;它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中&#xff0c;且能实现可撤销操作。 问题 假如你正在开发一款新的文字…

4-verilog简单状态机

verilog简单状态机 1. always (posedge clk or negedge rst_n) beginif (!rst_n)cnt_1ms < 20b0;else if (cnt_1ms_en)cnt_1ms < cnt_1ms 1b1;elsecnt_1ms < 20d0; endalways (posedge clk or negedge rst_n) beginif(!rst_n)cur_state < s1_power_init;else i…

ICCV2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~

汇总结果来源&#xff1a;ICCV 2025 Accepted Papers 若文中出现的 论文链接 和 GitHub链接 点不开&#xff0c;则说明还未公布&#xff0c;在公布后笔者会及时添加. 若笔者未及时添加&#xff0c;欢迎读者告知. 文章根据题目关键词搜索&#xff0c;可能会有遗漏. 若笔者出现…