1. 项目介绍

项目网站: mailcow: dockerized – Blog

根据官方介绍,这个项目名称是mailcow,名称都是小写的。下面内容是通过AI翻译自官方文档: https://docs.mailcow.email/

mailcow: dockerized 是一个基于 Docker 的开源组件/电子邮件套件。mailcow 依赖于许多广为人知且长期使用的组件,这些组件结合起来构成了一个全方位的无忧电子邮件服务器。每个容器代表一个单一的应用程序,它们通过桥接网络连接在一起。

涉及的开源组件如下:

名称

说明

 ACME

自动生成Let’s Encrypt SSL证书

 ClamAV

Antivirus引擎(可选)

 Dovecot

IMAP/POP 服务器,用于通过集成的全文搜索引擎“Flatcurve”检索电子邮件

 MariaDB

用于存储用户信息的数据库

 Memcached

用于缓存SOgo webmail相关数据

Netfilter 

类似Fail2ban的工具,由  @mkuron  提供

 Nginx 

提供web服务

 Olefy 

对Office文档进行Antivirus、宏等分析,主要和Rspamd搭配使用。

 PHP

提供WEB相关运行环境

 Postfix 

提供MTA服务

 Redis 

用于存储反垃圾、DKIM key相关信息。

 Rspamd 

带有垃圾邮件自动学习功能的垃圾邮件过滤器

 SOGo

一组提供CalDAV、CardDAV、ActiveSync服务的套件。

 Solr 

(已弃用)(可选)为IMAP连接提供全文搜索功能,以便快速搜索电子邮件

 Unbound 

集成的DNS服务器,用于验证DNSSEC等

Watchdog

用于mailcow内容器状态的基本监控

但是,mailcow的核心是其图形化Web界面,即mailcow UI。它几乎提供了所有设置的地方,并允许用户通过几次点击轻松创建新的域名和电子邮件地址。

它也可以轻松完成其他或更复杂的任务:

  • DKIM和ARC的支持/生成。
  • 按域名和用户设置黑白名单。
  • 按用户管理垃圾邮件评分(拒绝垃圾邮件、标记垃圾邮件、灰名单)。
  • 允许邮箱用户创建临时垃圾邮件别名。
  • 向主题添加电子邮件标签或将电子邮件移动到子文件夹(按用户)。
  • 允许邮箱用户为入站和出站消息切换TLS强制执行。
  • 用户可以在SOGo ActiveSync设备上重置缓存。
  • 使用imapsync定期迁移或检索远程邮箱。
  • 双因素认证(TFA):Yubikey OTP、WebAuthn USB(仅限Google Chrome及其衍生产品)、TOTP。
  • 添加白名单主机以将邮件转发到mailcow。
  • 类似Fail2ban的集成。
  • 隔离系统。
  • 包括Office文档中的宏扫描在内的antivirus扫描。
  • 集成的基本监控。
  • 等等……

mailcow的数据(如邮件数据、用户数据等)存储在Docker的卷中,需要注意备份。涉及的卷名称如下:

  • clamd-db-vol-1
  • crypt-vol-1
  • mysql-socket-vol-1
  • mysql-vol-1
  • postfix-vol-1
  • redis-vol-1
  • rspamd-vol-1
  • sogo-userdata-backup-vol-1
  • sogo-web-vol-1
  • solr-vol-1
  • vmail-index-vol-1
  • vmail-vol-1

2.安装准备工作

参考: Prepare your system – mailcow: dockerized documentation

官方文档说的很详细,这里仅作概要说明。

2.1 最低配置要求

资源项

配置要求

CPU

1GHz

内存

最小6GB + 1GB swap

磁盘

最小20GB,邮件数据存储空间另算

CPU架构

x86_64, ARM64

仅支持运行在全虚拟化(如KVM、ESX,、Hyper-V 等)的服务器上,不支持半虚拟化环境(如OpenVZ、LXC等)。

2.2 操作系统要求

注:建议查询官方文档获取最新的兼容测试情况。

操作系统版本

兼容情况

Debian 11, 12

完全兼容

Ubuntu 20.04 – 24.04

完全兼容

Alma Linux 8

完全兼容

Rocky Linux 9

完全兼容

Alpine since 3.17

兼容,但需要做一些手动调整

本文采用Rocky Linux 9作为安装演示。

2.3 网络端口要求

请参考官方文档: Prepare your system – mailcow: dockerized documentation

3.安装mailcow

3.1 安装docker

需要安装 Docker(版本要求 >= 20.10.2)和 Docker Compose(版本要求 >= 2.0)。

(1)安装yum源

cd /etc/yum.repos.d/
  • 1.

# 采用阿里云的yum源

wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1.

(2)安装docker

yum -y install docker-ce docker-ce-cli containerd.io
  • 1.

(3)查看docker版本

[root@mail ~]# docker -v
Docker version 27.0.3, build 7d4bcd8
  • 1.
  • 2.

(4)设置docker开机自启动

systemctl enable --now docker