mailcow-dockerized 部署指南:快速搭建完整的自建邮件服务器
2026/9/12 12:21:17 网站建设 项目流程

mailcow-dockerized 部署指南:快速搭建完整的自建邮件服务器

【免费下载链接】mailcow-dockerizedmailcow: dockerized - 🐮 + 🐋 = 💕项目地址: https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized

mailcow-dockerized 是一套基于 Docker Compose 的邮件服务器发行版,把 Postfix、Dovecot、Rspamd、ClamAV、Web 管理界面等组件打包成一组容器,一条命令拉起整套自建邮件服务器。

mailcow 是什么、适合谁

mailcow 本质上是一个"邮件全家桶":收发(Postfix)、存取(Dovecot)、反垃圾(Rspamd)、病毒扫描(ClamAV)、Web 管理端全部容器化,组件版本互相匹配,省掉了逐个安装配置的功夫。它适合以下三类场景:

  • 个人开发者搭自己的邮箱域名:不再依赖第三方免费邮箱,收发自控、数据在手,客户端自动发现省配置。
  • 中小团队替换商业邮件服务:按邮箱数量而非人数付费,Web 界面管理域名、邮箱、别名,非专业人员也能操作。
  • 需要完整反垃圾能力的运维人员:信誉黑名单、内容检测、附件扫描开箱即用,策略可在 data/conf/rspamd/ 下调整。

部署前的自查清单

动手前确认四项准备到位,可避免绝大多数部署失败。

硬件与系统要求

项目最低要求说明
操作系统Linux(Ubuntu/Debian/CentOS)服务器环境
内存2 GB低于 2.5 GB 建议关闭 ClamAV,防止内存溢出
磁盘20 GB容器镜像 + 邮件数据
软件Docker(≥24)+ Compose 插件mailcow 会检查 Docker 版本,过低会拒绝启动

域名与 DNS 准备

  • 需要一个域名,并为其准备一个子域名作为主机名(如mail.yourdomain.com),配置脚本会校验 FQDN。
  • 需要能自行添加 DNS 记录:
记录指向作用
A服务器公网 IP主机名解析
MXmail.yourdomain.com接收外部邮件
SPF(TXT)v=spf1 ...声明发信权限
DKIM(TXT)Web 界面生成发信签名
DMARC(TXT)_dmarc.yourdomain.com策略管理
  • 服务器需放行 25、80、443、993、587 等端口的入站流量,且 IP 未被主流黑名单收录。

三步完成部署

整个流程只有三步,按顺序执行即可。

第一步:安装 Docker

curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh

获取并安装 Docker 引擎;安装后把当前用户加入 docker 组并重新登录,免去后续 sudo。

第二步:拉取项目代码

git clone https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized.git cd mailcow-dockerized

第三步:生成配置并启动

ln -s mailcow.conf .env ./generate_config.sh docker compose up -d

generate_config.sh会交互式询问主机名(FQDN)、时区、分支,并根据内存大小决定是否跳过 ClamAV,最终生成mailcow.confdocker compose up -d后台拉起全部容器。

启动后访问https://mail.yourdomain.com,使用默认管理员账户admin/moohoo登录。所有运行参数(端口、SKIP_CLAMDUSE_WATCHDOG等)都集中在这个文件里,需要调整时改它即可。

上线后的 5 件事

容器跑起来只是开始,按顺序完成以下 5 项才算正式可用:

  1. 改掉默认密码:登录 Web 界面后第一件事就是重置admin密码,默认口令moohoo是公开信息。
  2. 核对 DNS:按界面提示逐项检查 MX、SPF、DKIM、DMARC 是否生效,可用 Web 界面自带的 DNS 检查功能。
  3. 建第一个域名和邮箱:在"电子邮件 → 域名"中添加yourdomain.com,再在其下创建邮箱(如user@yourdomain.com),设置密码与配额。
  4. 客户端连接测试:用桌面或手机客户端接入,IMAP 用 993 端口、SMTP 用 587 端口;mailcow 提供自动发现,Outlook/Thunderbird/手机应用多数可免手填。
  5. 收发验证:给外部地址(如公共邮箱)发一封测试信,再回一封进来,确认双向链路和 SPF/DKIM 均通过。

垃圾邮件与病毒防护:三道防线

mailcow 的反垃圾体系由 Rspamd 主控,邮件依次穿过三道关卡,配置目录统一在 data/conf/rspamd/:

  • 第一道:信誉黑名单。基于 IP/域名信誉数据源(RBL 类检查)拦截已知恶意来源,在local.d/的启用清单中按需开关数据源。
  • 第二道:内容检测。Rspamd 内置规则与贝叶斯分类器对邮件头、正文做打分,超过阈值判为垃圾;误判的邮件可通过 Web 界面"举报/非垃圾"回流训练。
  • 第三道:附件病毒扫描。ClamAV 容器扫描附件,另有 Olefy 容器专项解析 Office 文档宏威胁;内存不足时可在mailcow.confSKIP_CLAMD=y关闭,Rspamd 会自动感知其缺席。

Web 端管理界面可实时查看 Rspamd 过滤器明细与全局过滤策略,无需登录容器改文件。

日常运维手册

每日

docker compose ps docker exec -it postfix-mailcow postqueue -p

第一条确认全部容器为运行状态,第二条查看邮件队列积压;队列长期滞留说明对端拒绝或网络异常,可用docker exec -it postfix-mailcow postsuper -d ALL deferred清理已确认丢失的延迟邮件。

每周

./helper-scripts/backup_and_restore.sh backup all /backup/mailcow

完整备份(vmail、加密材料、MySQL、Rspamd、Postfix 配置等),备份目录必须使用绝对路径。可挂入 crontab:0 3 * * 0 /path/to/mailcow/helper-scripts/backup_and_restore.sh backup all /backup/mailcow。建议每周核对一次备份产物是否生成、大小是否正常。

每月

./update.sh

拉取并更新各组件,脚本位于项目根目录;更新前先看 release 说明,重大变更建议先在非生产环境验证。同时顺带审查一次 data/conf/ 下关键配置与 fail2ban 封禁列表。

出问题时怎么救

收不到外部邮件

  • 症状:自己发得出去,外部邮箱回不来。
  • 原因:MX/A 记录未生效,25 端口被防火墙拦截,或 SPF/DKIM 配置错误导致被拒。
  • 修复:先dig验证 MX 与 A 记录解析正确,再确认 25 端口开放;用 Web 界面的 DNS 诊断核对 SPF、DKIM、DMARC 三项。

Web 界面打不开

  • 症状:https://mail.yourdomain.com无响应或证书报错。
  • 原因:容器未全部就绪、80/443 端口未放行,或 ACME 证书申请失败。
  • 修复:
docker compose ps docker compose logs --tail=50 nginx-mailcow

前者确认 nginx、acme 等容器状态,后者看具体报错;确认 80/443 入站放行后,等 Let's Encrypt 申请完成即可恢复。

忘记管理员密码

  • 症状:admin账户无法登录。
  • 原因:密码遗失或被遗忘。
  • 修复:
./helper-scripts/mailcow-reset-admin.sh

按脚本提示重置管理员口令,无需进入数据库手工操作。

结语

部署完成不等于结束:改密码、核 DNS、建首个邮箱、跑通收发、盯住备份,这五件事和日常巡检才是邮件系统长期稳定的关键。更多服务配置可参考 data/conf/ 目录下的各组件配置,备份、重置、更新等维护脚本集中在 helper-scripts/,建议将其加入运维手册。

【免费下载链接】mailcow-dockerizedmailcow: dockerized - 🐮 + 🐋 = 💕项目地址: https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询