许多站长或技术爱好者部署 Mailcow 邮件服务器后,往往会有这样的需求:
我是否可以在一台服务器上同时托管多个邮箱域名,比如
user@domain.com和admin@abc.com?
答案是肯定的。Mailcow 完全支持“一套服务,多域名共用”的架构。本文将从 原理、配置方法、DNS 设置 等角度详细介绍。
✉️ 一、理解邮箱域名与服务器域名的区别
在 Web 系统中,一个域名通常绑定一个网站。但在邮件系统中,邮箱的域名(@后面的部分)和服务器实际绑定的域名可以是不同的。
比如:
- 邮箱地址:
user@abc.com - 实际邮件服务器:
mail.domain.com
这两者之间的关联,完全靠 DNS 中的 MX 记录 来建立。
🧠 二、工作原理解析:邮件是如何投递的?
当其他服务器向 user@abc.com 发送邮件时,流程如下:
- 查找 DNS:发送方查询
abc.com的 MX 记录,发现:abc.com → mail.domain.com - 解析地址:继续解析
mail.domain.com的 A 记录,获得服务器 IP(如 1.2.3.4) - 连接服务器:发送方连接到该 IP 的 SMTP 端口进行邮件投递
- Mailcow 接收邮件:Mailcow 检查邮件目标地址(
user@abc.com),如果你已经在后台添加了abc.com域名并创建了该邮箱,就成功接收
✅ 由此可见,邮件通信靠的是 DNS 中的 MX 路由,而不是服务器的主机名或 HTTPS 域名!
🛠️ 三、Mailcow 多域名部署方法
步骤 1:添加多个域名到 Mailcow
登录 Mailcow 管理后台:
- 点击顶部菜单 →
Configuration→Mail Setup→Domains - 点击
Add domain - 添加每一个你想托管邮箱的域名(如
abc.com,xyz.org等) - 可使用默认设置,关键是启用(Active)
步骤 2:为每个域名添加邮箱账户
- 进入顶部菜单 →
E-Mail→Mailboxes - 点击
Add mailbox - 选择域名(如
abc.com) - 设置邮箱用户名、密码、配额等
即可创建如 admin@abc.com、info@xyz.org 等地址。
🌐 四、DNS 配置指南
你需要在每个邮箱域名(例如 abc.com)的 DNS 服务商(如 Cloudflare、阿里云)设置以下记录:
| 记录类型 | 主机名 | 值 | 说明 |
|---|---|---|---|
| A | mail | 服务器 IP | 提供 SMTP/IMAP/POP3 连接 |
| MX | @ | mail.domain.com | 指向实际邮件服务器 |
| TXT | @ | SPF 记录(见下方示例) | 防垃圾验证 |
| TXT | _dmarc | DMARC 策略 | 防止伪造 |
| TXT/CNAME | DKIM 记录 | 由 Mailcow 自动生成 | 用于签名验证 |
SPF 示例:
v=spf1 mx ~all
表示该域名允许自己的 MX 所在服务器发信。
🔒 五、Webmail 登录与客户端设置
无论哪个域名的邮箱账户,用户都通过 统一的服务器域名 来收发邮件:
- Webmail 登录:
https://mail.domain.com/SOGo/ - 客户端配置(IMAP/SMTP):
| 协议 | 地址 | 端口 | 加密方式 |
|---|---|---|---|
| IMAP | mail.domain.com | 993 | SSL |
| SMTP | mail.domain.com | 465/587 | SSL/STARTTLS |
🎯 总结
| 项目 | 是否必须与服务器域名一致 | 说明 |
|---|---|---|
| 邮箱地址(如 @abc.com) | ❌ 无需一致 | 只要 MX 指向正确即可 |
| Webmail 地址 | ✅ 必须配置 | 你访问的是服务器的前端界面 |
| SMTP/IMAP 域名 | ✅ 必须配置 | 邮件客户端需要正确连接服务地址 |
| SSL 证书 | ✅ 建议配置服务器使用域名证书 | 例如 mail.domain.com 的 Let’s Encrypt |
🧩 延伸建议
- 可以将多个旧域名邮箱集中迁移至 Mailcow 中统一管理
- 统一发信网关,减少 SPF/DKIM 配置成本
- 用
aliases创建别名,实现一个账号多个地址管理
如果你也想搭建自己的邮箱系统,不妨试试 Mailcow。
一台 VPS,一套 Docker,一次配置,终身自由。