Docker 安装 Mailcow 自建域名邮箱
什么是Mailcow?
Mailcow是一个功能强大的开源邮件服务器解决方案,它使用Docker容器化技术来部署和管理完整的邮件服务系统。它集成了多个优秀的开源组件:
Postfix - 用于邮件传输
Dovecot - 提供IMAP/POP3服务
Nginx - Web服务器
SOGo - 提供Web邮件界面和日历功能
ClamAV - 病毒扫描
Rspamd - 垃圾邮件过滤
Mailcow提供了一个用户友好的Web界面来管理整个邮件系统,包括域名管理、用户管理、垃圾邮件过滤设置等功能。它支持现代电子邮件安全标准,如DKIM、SPF和DMARC,确保邮件的安全传输。
环境要求
在开始安装之前,请确保你的系统满足以下基本要求:
一个运行Linux的系统(推荐Debian或Ubuntu)
Docker和Docker Compose已正确安装
系统时间已通过NTP同步
防火墙已正确配置,允许所需端口通信
服务器具有可用的FQDN(完全限定域名)
服务器具有有效的SSL证书(可以使用Let's Encrypt)
此外,强烈建议使用具有良好网络连接和稳定性的VPS或专用服务器,避免使用家庭宽带或动态IP地址。
以下是整理后的内容,采用 Markdown 格式,结构清晰,保留原文核心信息,并对部分内容进行优化排版。
Docker 安装 Mailcow 自建域名邮箱
发布日期:2023 年 5 月 2 日
来源:烧饼博客
本文将指导你使用 Docker 安装 Mailcow 搭建自建域名邮箱。适用于任何支持 Docker 的 Linux 发行版。
什么是电子邮箱?
电子邮箱(Email)是一种通过互联网或其他计算机网络进行信息交换的方式,用于书写、发送和接收信件,实现发信人与收信人之间的信息交互。早期的电子邮件需要双方同时在线,类似于即时通信。(来源:Wikipedia)
国内用户常用邮箱:网易(
@163.com
)、腾讯(@qq.com
)等。国外用户常用邮箱:Google(
@gmail.com
)、Yahoo(@yahoo.com
)、Microsoft(@outlook.com
)等。
为什么要自建邮箱?
隐私保护:免费邮箱服务往往以牺牲用户隐私为代价,通过大数据分析进行广告盈利。自建邮箱可以保护你的数据和隐私。
资源利用:如果你拥有域名和 VPS,为何不利用现有资源做一些有趣的事情?
自建邮箱的优势与劣势
以下是自建邮箱与免费邮箱、收费邮箱的对比:
隐性成本说明:使用第三方邮箱服务时,数据存储在第三方服务器,可能面临以下风险:
服务被无故关停。
数据被卖给第三方。
服务商倒闭导致数据永久丢失。
自建邮箱的优势:
可控域名和服务器(选择信誉良好的注册商和供应商,稳定续费,避免违反 ToS)。
可自主备份数据,防止数据丢失。
自建邮箱所需准备
1. 域名
需要一个你完全拥有使用权的国际化域名。
推荐后缀:
.com
、.net
、.org
(避免使用小国家国别后缀)。
2. 服务器
配置要求(Mailcow 官方推荐):
防火墙需放行以下 TCP 端口:
注意:因垃圾邮件滥用问题,许多国外 VPS 商家默认屏蔽 25 端口或禁止邮件服务器,请提前与商家确认。
安装 Docker 和 Docker Compose
Debian/Ubuntu:参考相关教程(原文链接未包含)。
其他 Linux 系统:使用 Docker 官方脚本:
curl -fsSL <https://get.docker.com> -o get-docker.sh sh get-docker.sh
设置 DNS 解析记录
假设邮箱服务器域名为 mail.example.com
,邮箱地址为 username@example.com
,服务器 IPv4 为 192.0.2.25
,IPv6 为 2001:db8::25
,需设置以下 DNS 记录:
注意:部分 DNS 厂商控制面板添加 MX/CNAME 记录时不需要末尾点号,TXT 记录不需要前后引号。
此外,需联系 VPS 厂商设置 PTR 记录(IP 反向解析),将 192.0.2.25
和 2001:db8::25
指向 mail.example.com.
,以提高邮件送达率。
安装 Mailcow
获取 Mailcow 代码:
apt install git -y cd /opt git clone <https://github.com/mailcow/mailcow-dockerized> cd mailcow-dockerized
生成配置文件: 使用 FQDN(如
mail.example.com
)作为 hostname:bash generate_config.sh
按提示输入需求,生成
mailcow.conf
,可手动修改配置。拉取镜像并启动:
docker compose pull docker compose up -d
等待几分钟后,访问
https://mail.example.com/
,默认用户admin
,密码moohoo
。建议立即修改密码并启用 2FA 两步验证。
添加域名和邮箱
1. 添加域名
登录 Mailcow 后台,进入
Configuration > Mail Setup > Domains
。点击
+Add domain
,按需求填写设置。可选择
Add domain and restart SOGo
使 Web 客户端立即生效。
2. 开启 DKIM 并添加 DNS 记录
在
Configuration > ARC/DKIM keys
查看 DKIM 记录值(默认 Selector 为dkim
)。如未开启,可输入域名,选择 2048 位,点击
+ Add
。添加以下 DNS 记录:
注意:部分 DNS 厂商不支持超长 TXT 记录(最大 255 字符),需拆分为两条记录。
3. 添加邮箱用户
在
Mailboxes
标签中点击+Add mailbox
,按提示填写用户信息。
测试邮件
接收测试:使用外部邮箱向
username@example.com
发送邮件,确认是否正常接收。发送测试:通过 Mailcow 自带 SOGo(地址:
https://mail.example.com/SOGo/
)登录,使用mail-tester.com
测试邮件发送,查看评分(严格按照教程可达 10 分)。
Mailcow 更新与备份(续)
更新 Mailcow
Mailcow 的更新非常简单,只需执行官方提供的 update.sh
脚本即可:
cd /opt/mailcow-dockerized
./update.sh
首次执行脚本时,会提示你更新仓库文件,请按照提示操作。
更新仓库文件后,再次执行
./update.sh
脚本,以完成 Mailcow 容器和配置的更新。更新过程中,脚本会自动拉取最新版本的 Docker 镜像并重启相关服务,确保你的 Mailcow 实例保持最新状态。
注意:更新前建议备份当前配置和数据,以防止意外情况导致数据丢失或服务不可用。
备份 Mailcow
备份是自建邮箱的重要环节,可以防止数据丢失并在需要时快速恢复服务。Mailcow 提供了一个官方备份工具,具体操作如下(基于常见实践推测,原文未完整提供):
停止 Mailcow 服务:为了确保备份数据的一致性,建议先停止所有 Mailcow 容器:
cd /opt/mailcow-dockerized docker compose down
备份数据目录:Mailcow 的数据通常存储在
/opt/mailcow-dockerized/data
目录下(具体路径以你的mailcow.conf
配置为准),可以使用tar
命令进行备份: 这会创建一个以日期命名的压缩文件,例如mailcow_backup_2025-04-17.tar.gz
。tar -czvf mailcow_backup_$(date +%F).tar.gz /opt/mailcow-dockerized/data
备份配置文件:别忘了备份
mailcow.conf
文件,以便在恢复时快速配置:cp /opt/mailcow-dockerized/mailcow.conf mailcow.conf.backup
存储备份文件:将备份文件转移到安全的地方,例如异地服务器或云存储:
scp mailcow_backup_$(date +%F).tar.gz user@remote-server:/path/to/backups/
重启 Mailcow 服务:备份完成后,重启 Mailcow 容器:
cd /opt/mailcow-dockerized docker compose up -d
注意:建议定期备份(例如每天或每周),并测试备份文件的可用性,确保能在紧急情况下快速恢复。
恢复 Mailcow
如果需要从备份中恢复 Mailcow,可以按照以下步骤操作:
停止当前 Mailcow 服务:
cd /opt/mailcow-dockerized docker compose down
恢复备份数据:将备份文件解压到原数据目录:
tar -xzvf mailcow_backup_2025-04-17.tar.gz -C /opt/mailcow-dockerized/
恢复配置文件:将备份的
mailcow.conf
文件放回原位置:cp mailcow.conf.backup /opt/mailcow-dockerized/mailcow.conf
重启 Mailcow 服务:
docker compose up -d
检查服务状态:登录 Mailcow 管理后台,确认邮箱、域名和用户数据是否恢复正常。
常见问题与注意事项
25 端口被屏蔽:如前所述,许多 VPS 提供商默认屏蔽 25 端口,导致邮件无法发送。请提前联系服务商确认是否支持邮件服务,或者考虑使用中继服务(如通过第三方 SMTP 服务发送邮件)。
邮件送达率:即使设置了 SPF、DKIM 和 DMARC,部分邮件仍可能被标记为垃圾邮件。这与服务器 IP 的信誉度有关,建议使用干净的 IP 地址,并持续监控邮件发送状态。
资源占用:Mailcow 是一个集成度较高的邮件服务器解决方案,资源占用较高。如果你的 VPS 配置较低,可以考虑优化配置或选择轻量级邮件服务器。
安全性:自建邮箱需要格外注意安全问题,建议:
定期更新 Mailcow 和系统补丁。
启用 HTTPS 并使用强密码。
配置防火墙,仅开放必要的端口。
启用 2FA 两步验证保护管理后台。
总结
通过 Docker 安装 Mailcow 自建域名邮箱,不仅能保护个人隐私,还能充分利用现有域名和服务器资源。虽然自建邮箱在维护难度和成本上高于免费或收费邮箱服务,但其在隐私性和数据控制方面的优势无可替代。本教程详细介绍了从准备工作到安装、配置、测试、更新和备份的完整流程,希望能帮助你成功搭建自己的邮箱服务。
如果你在操作过程中遇到问题,欢迎参考 Mailcow 官方文档(Mailcow 官网)或社区寻求帮助。
以上内容为完整整理的 Markdown 格式文档,补充了备份和恢复部分的缺失内容,并增加了常见问题和总结部分,使教程更加全面和实用。如果有进一步需求或原文后续内容提供,我可以继续调整和完善。