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)等。


为什么要自建邮箱?

  1. 隐私保护:免费邮箱服务往往以牺牲用户隐私为代价,通过大数据分析进行广告盈利。自建邮箱可以保护你的数据和隐私。

  2. 资源利用:如果你拥有域名和 VPS,为何不利用现有资源做一些有趣的事情?


自建邮箱的优势与劣势

以下是自建邮箱与免费邮箱、收费邮箱的对比:

对比项

自建邮箱

免费邮箱

收费邮箱

隐私性

维护难度

价格

中 - 高

使用成本

隐性成本*

极高

隐性成本说明:使用第三方邮箱服务时,数据存储在第三方服务器,可能面临以下风险:

  • 服务被无故关停。

  • 数据被卖给第三方。

  • 服务商倒闭导致数据永久丢失。

自建邮箱的优势

  • 可控域名和服务器(选择信誉良好的注册商和供应商,稳定续费,避免违反 ToS)。

  • 可自主备份数据,防止数据丢失。


自建邮箱所需准备

1. 域名

  • 需要一个你完全拥有使用权的国际化域名。

  • 推荐后缀:.com.net.org(避免使用小国家国别后缀)。

2. 服务器

  • 配置要求(Mailcow 官方推荐):

    资源

    要求

    CPU

    1 GHz

    内存

    最低 6 GiB + 1 GiB swap(4 GiB 内存也可)

    硬盘

    20 GiB(不含邮件占用)

    系统

    x86_64

  • 防火墙需放行以下 TCP 端口:

    服务

    协议

    端口

    容器名

    Postfix SMTP

    TCP

    25

    postfix-mailcow

    Postfix SMTPS

    TCP

    465

    postfix-mailcow

    Postfix Submission

    TCP

    587

    postfix-mailcow

    Dovecot IMAP

    TCP

    143

    dovecot-mailcow

    Dovecot IMAPS

    TCP

    993

    dovecot-mailcow

    Dovecot POP3

    TCP

    110

    dovecot-mailcow

    Dovecot POP3S

    TCP

    995

    dovecot-mailcow

    Dovecot ManageSieve

    TCP

    4190

    dovecot-mailcow

    HTTP(S)

    TCP

    80/443

    nginx-mailcow

注意:因垃圾邮件滥用问题,许多国外 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 记录:

域名

解析类型

解析值

mail.example.com

A

192.0.2.25

mail.example.com

AAAA

2001:db8::25

example.com

MX

10 mail.example.com.

example.com

TXT

"v=spf1 mx ~all"

_dmarc.example.com

TXT

"v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"

autodiscover.example.com

CNAME

mail.example.com.

autoconfig.example.com

CNAME

mail.example.com.

注意:部分 DNS 厂商控制面板添加 MX/CNAME 记录时不需要末尾点号,TXT 记录不需要前后引号。

此外,需联系 VPS 厂商设置 PTR 记录(IP 反向解析),将 192.0.2.252001:db8::25 指向 mail.example.com.,以提高邮件送达率。


安装 Mailcow

  1. 获取 Mailcow 代码

    apt install git -y
    cd /opt
    git clone <https://github.com/mailcow/mailcow-dockerized>
    cd mailcow-dockerized
    
    
  2. 生成配置文件: 使用 FQDN(如 mail.example.com)作为 hostname:

    bash generate_config.sh
    
    

    按提示输入需求,生成 mailcow.conf,可手动修改配置。

  3. 拉取镜像并启动

    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 记录:

    域名

    解析类型

    解析值

    dkim._domainkey.example.com

    TXT

    "v=DKIM1;k=rsa;t=s;s=email;p=..."

注意:部分 DNS 厂商不支持超长 TXT 记录(最大 255 字符),需拆分为两条记录。

3. 添加邮箱用户

  • Mailboxes 标签中点击 +Add mailbox,按提示填写用户信息。


测试邮件

  1. 接收测试:使用外部邮箱向 username@example.com 发送邮件,确认是否正常接收。

  2. 发送测试:通过 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 提供了一个官方备份工具,具体操作如下(基于常见实践推测,原文未完整提供):

  1. 停止 Mailcow 服务:为了确保备份数据的一致性,建议先停止所有 Mailcow 容器:

    cd /opt/mailcow-dockerized
    docker compose down
    
    
  2. 备份数据目录: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
    
    
  3. 备份配置文件:别忘了备份 mailcow.conf 文件,以便在恢复时快速配置:

    cp /opt/mailcow-dockerized/mailcow.conf mailcow.conf.backup
    
    
  4. 存储备份文件:将备份文件转移到安全的地方,例如异地服务器或云存储:

    scp mailcow_backup_$(date +%F).tar.gz user@remote-server:/path/to/backups/
    
    
  5. 重启 Mailcow 服务:备份完成后,重启 Mailcow 容器:

    cd /opt/mailcow-dockerized
    docker compose up -d
    
    

注意:建议定期备份(例如每天或每周),并测试备份文件的可用性,确保能在紧急情况下快速恢复。

恢复 Mailcow

如果需要从备份中恢复 Mailcow,可以按照以下步骤操作:

  1. 停止当前 Mailcow 服务:

    cd /opt/mailcow-dockerized
    docker compose down
    
    
  2. 恢复备份数据:将备份文件解压到原数据目录:

    tar -xzvf mailcow_backup_2025-04-17.tar.gz -C /opt/mailcow-dockerized/
    
    
  3. 恢复配置文件:将备份的 mailcow.conf 文件放回原位置:

    cp mailcow.conf.backup /opt/mailcow-dockerized/mailcow.conf
    
    
  4. 重启 Mailcow 服务:

    docker compose up -d
    
    
  5. 检查服务状态:登录 Mailcow 管理后台,确认邮箱、域名和用户数据是否恢复正常。


常见问题与注意事项

  1. 25 端口被屏蔽:如前所述,许多 VPS 提供商默认屏蔽 25 端口,导致邮件无法发送。请提前联系服务商确认是否支持邮件服务,或者考虑使用中继服务(如通过第三方 SMTP 服务发送邮件)。

  2. 邮件送达率:即使设置了 SPF、DKIM 和 DMARC,部分邮件仍可能被标记为垃圾邮件。这与服务器 IP 的信誉度有关,建议使用干净的 IP 地址,并持续监控邮件发送状态。

  3. 资源占用:Mailcow 是一个集成度较高的邮件服务器解决方案,资源占用较高。如果你的 VPS 配置较低,可以考虑优化配置或选择轻量级邮件服务器。

  4. 安全性:自建邮箱需要格外注意安全问题,建议:

    • 定期更新 Mailcow 和系统补丁。

    • 启用 HTTPS 并使用强密码。

    • 配置防火墙,仅开放必要的端口。

    • 启用 2FA 两步验证保护管理后台。


总结

通过 Docker 安装 Mailcow 自建域名邮箱,不仅能保护个人隐私,还能充分利用现有域名和服务器资源。虽然自建邮箱在维护难度和成本上高于免费或收费邮箱服务,但其在隐私性和数据控制方面的优势无可替代。本教程详细介绍了从准备工作到安装、配置、测试、更新和备份的完整流程,希望能帮助你成功搭建自己的邮箱服务。

如果你在操作过程中遇到问题,欢迎参考 Mailcow 官方文档(Mailcow 官网)或社区寻求帮助。


以上内容为完整整理的 Markdown 格式文档,补充了备份和恢复部分的缺失内容,并增加了常见问题和总结部分,使教程更加全面和实用。如果有进一步需求或原文后续内容提供,我可以继续调整和完善。


Docker 安装 Mailcow 自建域名邮箱
https://5555.blog//archives/docker-an-zhuang-mailcow-zi-jian-yu-ming-you-xiang
作者
Administrator
发布于
2025年04月17日
许可协议