如何快速部署 mailcow 邮件服务器从零搭建到日常运维的完整指南【免费下载链接】mailcow-dockerizedmailcow: dockerized - 项目地址: https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized自己搭一套能收发信、能拦垃圾邮件、还能管账号的邮件服务器过去得手动装好 Postfix、Dovecot、Rspamd 一大串服务任何一个参数配错轻则收不到信重则整台机器被标记成垃圾源。mailcowmailcow-dockerized是一个开源的、容器化的邮件服务器发行版它把这些服务打包成一组 Docker 容器你只需要一台 Linux 服务器和一个域名就能在自己的机器上跑起一套带 Web 管理后台的完整邮件系统。部署前先把这几项检查清楚在动手之前花几分钟把环境过一遍能避开后面 90% 的坑。对照下面的清单确认你的服务器满足要求检查项建议值说明Docker 版本24.0.0 及以上generate_config.sh 会检查低于此版本会直接退出Docker Compose已安装用于按 docker-compose.yml 一次性拉起全部容器内存建议 ≥ 4 GiB内存 ≤ 2.5 GiB 时脚本会建议你关闭 ClamAV 病毒扫描磁盘建议 ≥ 20 GB存放邮件、数据库与各服务日志域名一个完整域名FQDN如mail.example.com用作邮件服务器主机名系统LinuxUbuntu / Debian 等均可这里有两个容易忽略的点主机名不等于邮箱域名。mail.example.com是邮件服务器的主机名FQDN它必须带至少一个子域脚本对不含子域的写法会给出警告。IP 的信誉。如果你的服务器用的是被标记的机房网段Rspamd 的部分黑名单可能不生效脚本在检测时会提示这一点留意输出信息。部署执行从拉代码到服务启动环境没问题后整个部署就三步把代码拉下来、生成配置、启动容器。第 1 步获取代码并生成配置。git clone https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized mailcow cd mailcow ln -s mailcow.conf .env ./generate_config.sh这条命令把仓库拉下来创建.env软链接generate_config.sh依赖它才能运行然后执行脚本。脚本会依次询问三件事邮件服务器主机名FQDN、时区、以及是否关闭 ClamAV低内存机器建议选关闭。确认后会生成mailcow.conf配置文件并自动初始化一个临时证书。第 2 步启动所有容器。docker compose up -d这一条命令会按依赖顺序拉取镜像、起网、逐个启动十几个服务容器。首次拉取镜像需要几分钟之后可以喝口水别急着判断失败。功能验证确认邮件系统真的能用容器都起来不等于系统能收发信下面做三件验证。看容器状态。运行docker compose ps正常情况下每个服务都是Up或带healthy标记。如果有某个容器反复重启先记下它的名字多数问题都能在日志里看到原因。登录 Web 后台。用浏览器访问https://你的主机名默认管理员账号是admin密码是moohoo。能正常登录并看到容器、域名列表说明 Web 侧通了。登录后第一件事就是改掉这个默认密码。配好 DNS 再谈收信。在后台「电子邮件」里添加你的域名后mailcow 会列出需要你发布到 DNS 的记录类型通常包括 MX、SPF、DKIM、DMARC。把这些记录解析好外部邮件才进得来、发出去才不被拒。记录没配齐之前「收不到信」是正常现象不用慌。自定义配置端口、反垃圾与 Webmail默认配置已经能跑但要贴合你的环境最常改的是这几处全部集中在 data/conf/ 目录和mailcow.conf里端口SMTP 用 25 / 465 / 587IMAP 用 143 / 993POP3 用 110 / 995Sieve 用 4190Web 用 80 / 443。想改哪个就在mailcow.conf里找对应的*_PORT项改完重建容器生效。反垃圾与病毒扫描Rspamd 负责过滤垃圾信ClamAV 负责扫附件病毒。内存紧张时把mailcow.conf里的SKIP_CLAMD设为y即可停用 ClamAVRspamd 会自动感知并跳过它。相关规则都在 data/conf/rspamd/ 下按用途分了local.d、custom、override.d几个子目录改完保存即可。Webmail 与协议SOGo 提供网页邮箱和 Exchange/ActiveSync 支持配置在 data/conf/sogo/。如果只想要 SMTP/IMAP 而不需要 Webmail可以把SKIP_SOGO设为y。Postfix / Dovecot收发信主链路分别对应 data/conf/postfix/ 和 data/conf/dovecot/一般不需要动排查投递问题时再进来看。小提示改完mailcow.conf或任意配置后通常需要docker compose down docker compose up -d让改动真正生效单纯重启单个容器往往不够。维护与升级更新、备份与找回管理员mailcow 把最常用的运维动作都写成了脚本放在 helper-scripts/ 和项目根目录不用记复杂命令。版本更新运行根目录的 update.sh。它会先拉取新代码、合并本地改动、拉取新镜像再重建容器。升级前脚本会明确提醒你「所有容器都会停止」建议在低峰期执行。mailcow 走的是分支更新模式默认master是稳定版另有nightly测试用和legacy仅安全更新一般保持默认的master就行。备份用 helper-scripts/backup_and_restore.sh。它支持backup和restore两个方向可以只备vmail邮件、mysql数据库、redis、rspamd等单部件也可以用all一次性全备。典型用法是helper-scripts/backup_and_restore.sh backup all /你的备份目录备份目录必须是绝对路径。把它写进 crontab就能实现定期自动备份这是保护邮件数据最稳妥的一道保险。找回管理员万一忘了admin的密码或双因素把你自己锁在外面运行 helper-scripts/mailcow-reset-admin.sh。它需要 MySQL 容器正在运行执行后会清掉旧的admin记录与双因素记录并生成一个新的随机密码打印到终端照提示登录即可。常见坑收发不了信时该查哪里按出现频率排个序这几个场景基本能覆盖新手遇到的绝大多数问题收不到外部邮件——九成是 DNS。先确认 MX 记录指向了这台服务器再核对 SPF、DKIM、DMARC 是否都解析成功。记录没配好之前「进不来」是预期内的别急着怀疑代码。后台打不开 / 证书报错——先看docker compose ps里 nginx 是否Up再看 80 / 443 端口是否放通。如果是 Lets Encrypt 证书还没申请下来通常要等 ACME 容器完成验证稍后再试。登录后被当垃圾信拒收——多半是发送方域名没配 DKIM/SPF或你的服务器 IP 落在被屏蔽的网段。后者可以按mailcow.conf里的提示配置 Spamhaus 的SPAMHAUS_DQS_KEY。低内存机器跑起来很卡——把SKIP_CLAMD设为y关掉病毒扫描内存压力会明显下降。忘了管理员密码——直接用上文提到的 helper-scripts/mailcow-reset-admin.sh不要手动改数据库。到这里你的邮件服务器已经能正常收发了。建议接下来做两件事把默认管理员密码改掉并记下备份路径以及给backup_and_restore.sh配一个定时任务让备份自动跑起来——这两步做好系统才算真正进入可长期运维的状态。【免费下载链接】mailcow-dockerizedmailcow: dockerized - 项目地址: https://gitcode.com/GitHub_Trending/ma/mailcow-dockerized创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
