重要声明:为什么搭建邮件服务器很难?
在开始之前,你必须了解以下几点:

- IP 信誉是关键:如果你的服务器 IP 是新的,或者之前被滥用过,你的邮件很可能会被 Gmail、Outlook 等主流服务商直接标记为垃圾邮件,这需要时间和良好的发信记录来建立信誉。
- 复杂性:邮件系统由多个组件协同工作(MTA, MDA, MUA, DNS, DKIM, SPF, DMARC, DNSSEC 等),任何一个环节配置错误都可能导致邮件发送失败或被拒收。
- 持续维护:你需要不断监控系统日志、更新软件、处理各种问题。
- 法律法规:你需要了解并遵守你所在地区关于邮件发送的法律法规(如反垃圾邮件法),并尊重用户的隐私。
如果你只是需要一个简单的邮件服务,强烈建议使用专业的第三方邮件托管服务(如 Google Workspace, Microsoft 365, Zoho Mail, 阿里企业邮箱等)。 这能节省你大量的时间和精力。
方案选择:传统 vs. 现代化
对于 Ubuntu,主流的邮件服务器软件栈有两种选择:
| 特性 | 传统方案 (Postfix + Dovecot) | 现代化方案 (Mailcow) |
|---|---|---|
| 组件 | MTA: Postfix (发送/接收) MDA/IMAP/POP3: Dovecot (存储/接收) 管理: 手动配置或使用第三方工具 (如 iRedMail) |
一体化套件: 包含 Postfix, Dovecot, SpamAssassin, ClamAV, SOGo (Webmail/日历/联系人), Rspamd (反垃圾邮件), DKIM/SPF/DMARC 自动管理等。 |
| 优点 | - 灵活度高,可完全定制 - 社区支持庞大,资料丰富 - 性能经过长期验证 |
- 开箱即用,功能强大 - Web 管理界面,简化配置 - 安全性高,默认配置良好 - 自动处理 DKIM, SPF, DMARC 等复杂设置 |
| 缺点 | - 配置极其复杂,容易出错 - 需要手动配置所有安全策略 - 没有统一的管理界面 |
- 灵活性相对较低 - 学习曲线转向如何使用其管理界面 - 所有组件都由 Mailcow 团队维护 |
| 推荐人群 | - 有 Linux 经验,希望深入学习邮件系统原理的爱好者或管理员 - 有特殊定制需求的场景 |
- 绝大多数用户,特别是希望快速搭建一个功能完善、安全可靠的邮件服务器的用户 - 不想陷入繁琐配置的管理员 |
对于绝大多数人,我强烈推荐使用 Mailcow。 它能帮你规避掉 90% 的坑,本指南将重点介绍 Mailcow,并简要介绍传统方案。
使用 Mailcow (推荐)
Mailcow 是一个功能强大、易于使用的邮件服务器套件。

第 1 步:准备环境
-
服务器要求:
- 操作系统:Ubuntu 20.04 LTS 或 22.04 LTS。
- 内存:建议至少 2GB,推荐 4GB 或以上,因为 SOGo、ClamAV、SpamAssasin 等服务比较消耗资源。
- 硬盘:至少 25GB 可用空间。
- 域名:一个你自己的域名,
mail.example.com。 - 静态公网 IP:必须有一个固定的、干净的公网 IP。
- 主机名:正确设置服务器的主机名,如果你的域名是
example.com,那么主机名可以是mail.example.com,可以通过hostnamectl set-hostname mail.example.com设置。
-
更新系统:
sudo apt update && sudo apt upgrade -y
-
安装必要工具:
sudo apt install -y git curl wget
第 2 步:安装 Mailcow
-
克隆 Mailcow 仓库:
(图片来源网络,侵删)cd /opt sudo git clone https://github.com/mailcow/mailcow-dockerized cd mailcow-dockerized
-
生成配置文件:
sudo cp mailcow.conf config/mailcow.conf
然后编辑这个文件:
sudo nano config/mailcow.conf
你至少需要修改
MAILCOW_HOSTNAME和MAILCOWORGANIZATION,其他选项可以保持默认。# config/mailcow.conf MAILCOW_HOSTNAME=mail.example.com # 你的邮件服务器域名 ... # 其他配置...
保存并退出 (
Ctrl+X,Y,Enter)。 -
启动安装: Mailcow 使用 Docker 和 Docker Compose 来管理所有服务,首先确保你的系统已经安装了它们。
# 安装 Docker sudo apt install -y docker.io docker-compose-plugin # 启动 Docker 服务 sudo systemctl enable --now docker # 将当前用户加入 docker 组,避免每次都 sudo sudo usermod -aG docker ${USER} # 重要:注销并重新登录,或者运行 newgrp docker 使组生效现在开始安装:
./generate_config.sh
这个脚本会检查你的配置并下载所有必需的 Docker 镜像,这可能需要一些时间,具体取决于你的网络速度。
第 3 步:配置 DNS
这是最关键的一步,你需要登录到你的域名注册商(如 GoDaddy, Namecheap, 阿里云等)的控制面板,为你的域名添加以下 DNS 记录。
假设你的邮件服务器域名是 mail.example.com,主域名是 example.com。
-
MX 记录:指定接收邮件的服务器。
- 主机: (或直接写
example.com) - 类型:
MX - 值:
mail.example.com - 优先级:
10
- 主机: (或直接写
-
A 记录:将
mail.example.com解析到你的服务器 IP。- 主机:
mail - 类型:
A - 值:
你的服务器公网IP
- 主机:
-
AAAA 记录 (可选,如果你有 IPv6):将
mail.example.com解析到你的 IPv6 地址。- 主机:
mail - 类型:
AAAA - 值:
你的服务器IPv6地址
- 主机:
-
PTR 记录 (反向解析):这是极其重要的一步,它让你的 IP 地址反向解析到你的邮件服务器域名。这个记录通常需要在你的服务器提供商(如 VPS 商)的控制面板里设置,而不是在域名商那里。
- 目标:
你的服务器公网IP - 主机名:
mail.example.com
- 目标:
-
SPF 记录:声明哪些 IP 地址有权代表你的域名发送邮件。
- 主机: (或
example.com) - 类型:
TXT - 值:
v=spf1 mx ~all(表示只有 MX 记录中指定的服务器可以发信,~all表示软失败,即其他发信尝试会被标记为可能垃圾邮件)
- 主机: (或
-
DKIM 记录:用于验证邮件的真实性,防止伪造,Mailcow 会自动生成这一对密钥。
- 你需要进入 Mailcow 的管理界面,在 "DKIM" 标签页下为你的域名生成密钥。
- 然后将生成的 TXT 记录 复制并添加到你的域名 DNS 中。
- 主机:
dkim._domainkey(或类似,Mailcow 会提示) - 类型:
TXT - 值:
v=DKIM1; k=rsa; p=你的公钥...
-
DMARC 记录:基于 SPF 和 DKIM 的策略。
- 主机:
_dmarc(或dmarc) - 类型:
TXT - 值:
v=DMARC1; p=quarantine; rua=mailto:postmaster@example.com(表示收到不合规的邮件进行隔离,并将报告发送到 postmaster 邮箱)
- 主机:
所有 DNS 修改生效后,等待几分钟到几小时。 你可以使用在线工具如 MXToolbox 来检查你的 DNS 记录是否配置正确。
第 4 步:访问管理界面和邮件客户端
-
启动服务:
docker-compose up -d
Mailcow 现在会在后台启动所有必要的服务。
-
访问 Web 管理界面:
- 打开浏览器,访问
https://mail.example.com。 - 用户名:
admin - 密码:
moohoo(默认密码,请在首次登录后立即修改!) - 你可以添加域、添加用户、配置反垃圾邮件策略等。
- 打开浏览器,访问
-
配置邮件客户端 (如 Outlook, Thunderbird, 手机邮件 App):
- IMAP (接收邮件):
- 服务器:
mail.example.com - 端口:
993 - 加密:
SSL/TLS
- 服务器:
- SMTP (发送邮件):
- 服务器:
mail.example.com - 端口:
465或587 - 加密 (465):
SSL/TLS - 加密 (587):
STARTTLS
- 服务器:
- 认证: 需要勾选,使用你的邮箱地址和密码。
- IMAP (接收邮件):
传统方案 (Postfix + Dovecot)
如果你坚持要手动搭建,这里是一个高层次的概述:
-
安装核心组件:
sudo apt install postfix dovecot-imapd dovecot-pop3d
在安装 Postfix 时,选择 "Internet Site" 并输入你的邮件服务器域名 (e.g.,
mail.example.com)。 -
配置 Postfix (
/etc/postfix/main.cf):- 设置
myhostname,mydomain,myorigin。 - 配置
mydestination。 - 配置虚拟域和虚拟邮箱(用于存储用户邮件)。
- 配置 SASL 认证(与 Dovecot 集成)。
- 配置中继策略,防止开放中继。
- 设置
-
配置 Dovecot:
- Dovecot 的主配置文件是
/etc/dovecot/dovecot.conf。 - 配置
mail_location来指定邮件存储位置(通常是maildir格式)。 - 配置 SSL/TLS 证书(强烈建议使用 Let's Encrypt 的
certbot)。 - 配置认证机制,与 Postfix 集成。
- Dovecot 的主配置文件是
-
用户管理:
- 通常使用
vmail用户来管理所有邮件,并为每个邮箱创建一个系统用户或使用数据库(如 MySQL/PostgreSQL)来存储用户信息。
- 通常使用
-
安全加固:
- 配置防火墙 (
ufw)。 - 使用
fail2ban防止暴力破解。 - 配置 SPF, DKIM, DMARC (手动过程非常繁琐)。
- 配置防火墙 (
-
安装附加组件:
- 反垃圾邮件: SpamAssassin
- 反病毒: ClamAV
- Webmail: SOGo, Roundcube 或 Rainloop
这个过程非常漫长且容易出错,需要你阅读大量的官方文档和社区教程。
总结与建议
| 特性 | Mailcow (推荐) | Postfix + Dovecot (手动) |
|---|---|---|
| 上手难度 | ⭐☆☆☆☆ (非常简单) | ⭐⭐⭐⭐⭐ (非常困难) |
| 功能完整性 | ⭐⭐⭐⭐⭐ (开箱即用) | ⭐⭐⭐⭐⭐ (高度可定制) |
| 维护成本 | 低 | 高 |
| 学习曲线 | 学习如何使用 Web UI | 学习邮件系统底层原理 |
| 适合场景 | 个人、小型企业、快速部署 | 有经验的系统管理员、有特殊定制需求 |
再次强调:对于绝大多数用户,请选择 Mailcow,它能让你在几个小时内拥有一个功能完善、安全可靠的邮件服务器,而不是花费数周甚至数月的时间去调试一个手动搭建的系统。
祝你搭建顺利!
