开源邮件服务器Mailcow及其快速部署指南

对于密码朋克来说,架设自己的电子邮件服务器是一个值得考虑的选择。这关乎着对数据安全性和邮件传递可靠性的深度掌控。 自行管理邮件服务器意味着你可以完全掌控数据的存储位置和访问权限,避免将敏感信息托付给第三方服务商,从而最大程度地降低数据泄露的风险。
当然,维护一个邮件服务器需要投入更多的时间和精力,需要掌握相关的技术知识,例如 DNS 配置、邮件服务器软件的安装和维护、安全策略的制定等等。本文讲以Mailcow为例,介绍 如何快速架设自己的电子邮件服务器。
一、什么是Mailcow
Mailcow 是一个基于 Docker 的开源邮件服务器套件,它集成了多个关键组件,如 Postfix、Dovecot、Rspamd、ClamAV、SOGo、Unbound 和 MariaDB。Mailcow 通过容器化管理提供了一套完整的邮件服务器解决方案,支持 SMTP、IMAP、POP3 以及 WebMail,并且具备反垃圾邮件、病毒扫描、日历和联系人同步等功能。
相比传统的邮件服务器,Mailcow 通过 Docker Compose 进行一键部署,大大简化了安装和维护工作。它自带 Web 界面,用户可以轻松管理邮件账户、域名、反垃圾邮件策略和安全认证。Mailcow 还支持 DKIM、SPF 和 DMARC 认证,以提高邮件的可信度和防止邮件欺诈。
二、在 Dockge 中部署 Mailcow
Dockge 是一个轻量级的 Docker Compose 管理工具,类似于 Portainer,但更加专注于 Docker Compose 应用的管理。它提供了直观的 Web 界面,允许用户方便地添加、管理和监控多个 Docker Compose 服务。在 Dockge 中,用户可以直接创建 Mailcow 的 Docker Compose 堆栈,并通过 Web 界面进行管理,而无需手动运行命令行操作。
Docker以及Dockge的具体安装方式,请参考基地相关讨论,这里不再赘述。
首先,需要进入 Dockge 的 Web 界面,通常可以通过 http://your-server-ip:5001
访问。在 Dockge 中,点击 “Add a new stack” 按钮,输入堆栈名称,例如 mailcow
,然后在配置界面粘贴以下 docker-compose.yml
配置。
version: "3.7"
services:
mailcow-init:
image: alpine:latest
container_name: mailcow-init
volumes:
- ./mailcow-data:/data
command: >
sh -c "
apk add --no-cache git &&
git clone --depth=1 https://github.com/mailcow/mailcow-dockerized.git /data &&
cp /data/mailcow.conf.example /data/mailcow.conf &&
echo 'MAILCOW_HOSTNAME=mail.example.com' >> /data/mailcow.conf &&
echo 'TZ=Asia/Shanghai' >> /data/mailcow.conf
"
restart: "no"
mailcow:
depends_on:
- mailcow-init
build: ./mailcow-data
container_name: mailcow-server
volumes:
- ./mailcow-data:/opt/mailcow
working_dir: /opt/mailcow
command: >
sh -c "
docker compose pull &&
docker compose up -d
"
restart: "no"
点击 “Deploy” 按钮,Dockge 会自动拉取 Mailcow 代码并启动容器。
三、访问 Mailcow Web 管理界面
Mailcow 启动后,可以在浏览器中访问 https://mail.example.com
,首次访问时需要手动设置管理员账户密码,默认用户名为 admin
。登录后,即可进入 Mailcow 的 Web 管理后台,在这里可以创建邮箱账户、管理域名、配置反垃圾邮件策略,并查看邮件系统的运行状态。
四、配置 DNS 解析
为了确保邮件服务器可以正常收发邮件,需要在域名服务提供商(如 Namecheap、Cloudflare、GoDaddy)中配置 DNS 解析。需要添加 A 记录,将 mail.example.com
指向服务器的公网 IP 地址。还需要添加 MX 记录,指定邮件服务器的地址,例如 mail.example.com
,优先级可以设置为 10
。
此外,还需要配置 SPF、DKIM 和 DMARC 记录,以提高邮件的可信度。SPF 记录可以设置为 v=spf1 mx -all
,DKIM 记录需要在 Mailcow 管理后台中生成,并添加到 DNS 解析中,而 DMARC 记录可以设置为 v=DMARC1; p=none;
。可以使用 MXToolbox 或 Google Admin Toolbox 来检查 DNS 解析是否正确配置。
五、在 Dockge 中管理 Mailcow
Mailcow 部署完成后,可以在 Dockge 的 “Stacks” 页面找到 mailcow
,在这里可以随时启动、停止或重新部署容器。在 “Containers” 页面,可以查看 Mailcow 的各个服务是否正常运行,比如 Postfix、Dovecot、Rspamd 等。
如果需要更新 Mailcow,可以在 Dockge 中点击 “Rebuild & Deploy”,Dockge 会自动拉取最新的 Mailcow 版本并重新部署。也可以 SSH 登录服务器,进入 Mailcow 目录后运行 docker compose pull
和 docker compose up -d
来手动更新。
六、创建邮箱账户并测试邮件收发
登录 Mailcow 管理界面后,可以进入 “Mailbox” 页面创建新的邮箱账户,例如 user@example.com
。创建完成后,可以使用邮件客户端(如 Outlook、Thunderbird 或手机上的邮件应用)连接 Mailcow。
IMAP 服务器地址为 mail.example.com
,端口号为 993
,使用 SSL/TLS 加密。SMTP 服务器地址同样为 mail.example.com
,端口号为 587
,使用 STARTTLS 加密。POP3 服务器端口为 995
,也需要使用 SSL/TLS 加密。
配置完成后,可以发送一封测试邮件到 ProtonMail,检查邮件是否能够成功发送。同时,可以从 ProtonMail 向 Mailcow 邮箱发送邮件,测试能否正常接收。如果邮件能够正常往返,则说明邮件服务器部署成功。
七、小结
Mailcow 是一个完整的邮件服务器解决方案,它基于 Docker 进行容器化管理,具备邮件收发、反垃圾邮件、WebMail、联系人同步等功能。Dockge 作为 Docker Compose 管理工具,使 Mailcow 的部署更加简单,用户可以通过 Web 界面完成所有操作,而无需手动运行命令。
在 Dockge 中部署 Mailcow 只需要创建一个新的堆栈,并粘贴 docker-compose.yml
配置,Dockge 会自动拉取 Mailcow 代码并启动所有必要的容器。部署完成后,用户可以通过 Web 界面管理邮箱账户,并使用邮件客户端进行邮件收发。
正确配置 DNS 记录对于邮件服务器的正常运行至关重要,特别是 SPF、DKIM 和 DMARC 记录,这些可以提高邮件的可信度,防止邮件被标记为垃圾邮件。可以使用 MXToolbox 或 Google Admin Toolbox 来检查 DNS 配置是否正确。
通过 Dockge 部署 Mailcow,不仅简化了安装过程,还使得邮件服务器的管理变得更加直观和高效,可以帮助主权个人实现安全、稳定的邮件通信。
回复