1Panel 自建邮局教程: Docker Mailserver + Roundcube 部署指南
前言:
我相信很多人都有搭建邮局的需求,但是除了直接购买邮局服务器,还是有很大一部分人是想要自己搭建自己的邮局的。今天有空就准备写一篇基于 Mailserver+Roundcube 搭建邮局的教程。最主要的原因还是帮助大家一点一点的提升自己,掌握更多 VPS 的玩法。
但在此之前,必须先泼一盆冷水。
自建邮局有以下缺陷:
- 配置复杂,技术门槛高: 涉及 DNS 各类记录( A, MX, SPF, DKIM, DMARC )、反向解析( PTR )、SSL 证书以及 Linux 运维知识。
- 维护成本高: 需要定期更新和维护服务器,防止被漏洞利用成为肉鸡。
- 邮件送达率不稳定: 即使你配置得当,IP 也很容易被大厂( Gmail, Outlook )拉黑,或者直接进入垃圾邮件箱。IP 预热是一个漫长的过程。
- 端口封锁: 绝大多数云服务商默认封锁 25 端口,需要提交工单申请解封,且审核严格。
如果这些缺点你都能接受,或者只是想单纯的学习一下邮局的搭建,那请继续的看下去吧
第一步:环境准备
在开始之前,请确保满足以下条件:
- 服务器( VPS ): 安装了 1Panel 面板。这里可以学习我以前的文章:告别“环境污染”! Debian 服务器安装 1Panel 面板教程:专治 Docker 困难户
- 域名: 拥有域名的管理权限(用于修改 DNS ),可以去 spaceship 、namecheap 或者国内的阿里云、腾讯云购买。我这里是托管在了 CloudFlare 方便解析和安全,不同的托管平台可能配置不一样但是也是大同小异的。 > 购买域名教程:Spaceship 域名注册优惠购买使用教程
- 25 端口: 确认服务器的 25 端口是开放的(使用
telnet smtp.gmail.com 25测试,如果通了就是开放的,不通请找服务商申请)。
开发 25 端口的商家我推荐:RackNerd 、Netcup 、CloudClone 、BWH (搬瓦工),有一些默认没开需要申请,有一些默认开启了。RackNerd 的 rDNS 需要工单开启、Netcup 可以在服务器后台自主设置 rDNS 信息。
在我的传家宝监控都可以找到:传家宝 VPS 监控

第二步:安装 Docker Mailserver
- 登录 1Panel 面板。
- 点击侧边栏 应用商店。
- 搜索
Mailserver并点击 安装。

配置参数:
名称: 保持默认
mailserver。OVERRIDE_HOSTNAME: 输入你的邮件服务器主机名,例如
mail.yuhuiculture.icu(请替换为你自己的域名)。
端口: 保持默认( 25, 143, 587, 993 等)。
高级设置: 建议勾选“端口外部访问”。
点击 确认 进行安装,等待容器启动显示“已启动”。

第三步:创建账户与生成 DKIM
1. 创建首个账户
点击 1Panel 侧边栏 容器,找到 mailserver 容器,点击右侧的 终端 图标进入容器命令行。

输入以下命令创建邮箱账户(将 admin@yuhuiculture.icu 和 密码 替换为你自己的):
# 语法: setup email add <邮箱地址> <密码>
setup email add admin@yuhuiculture.icu yourstrongpassword
2. 生成 DKIM 密钥
继续在终端输入命令生成 DKIM 密钥:
setup config dkim
生成成功后,DKIM 密钥文件位于容器内的 /tmp/docker-mailserver/opendkim/keys/ 目录下。
对应 1Panel 主机(宿主机)的路径通常为:
/opt/1panel/apps/mailserver/mailserver/data/dms/config/opendkim/keys/

进入宿主机的该目录,找到 mail.txt 文件,下载或查看内容,我们需要将里面的内容导入到 DNS 解析中。这个地方的内容在后续的 DNS 解析里很重要,所以可以下载到本地。
第四步:配置 DNS 解析
这是最关键的一步,请登录你的域名服务商后台(如阿里云、腾讯云、Cloudflare ),添加以下记录,我这里是使用 Cloudflare 作为演示,所以可能和你的不一样但是添加记录的方式都是一样的。
假设你的域名是 yuhuiculture.icu,邮件服务器 IP 是 154.26.209.188。
1. A 记录
将邮件服务器域名指向 IP 。
- 记录类型: A
- 主机记录: mail 、roundcube
- 记录值: 154.26.209.188
这里顺带也可以把 roundcube 的二级域名添加上去,后续搭建 web 面板使用的时候,就不需要在过来添加域名解析了,如果不喜欢 roundcube 也可以缓存你自己喜欢的二级域名绑定。
2. MX 记录
告诉互联网你的邮件由哪台服务器接收。
- 记录类型: MX
- 主机记录: @
- 记录值: mail.yuhuiculture.icu
- 优先级: 10
3. SPF 记录 (TXT)
授权该 IP 发送邮件,防止他人冒用。
- 记录类型: TXT
- 主机记录: @
- 记录值:
v=spf1 mx ~all
解释:
v=spf1版本号;mx表示授权 MX 记录对应的 IP 发信;~all表示宽容策略(软失败),如果 IP 不匹配则标记为垃圾邮件而不是直接拒收,v=spf1 mx ~all这里的 IP 也可以使用你服务器的 IP ,具体的规则需要参考文档,如果发现出现问题可以把报错信息给 AI ,协助你处理。
4. DKIM 记录 (TXT)
打开刚才生成的 mail.txt 文件。
手动添加 DNS 记录时注意:需合并文件内的记录值,去掉双引号和换行符,将其合并成一行长字符串。
- 记录类型: TXT
- 主机记录:
mail._domainkey(注意:如果是默认生成的,通常是mail作为选择器,请检查文件名确认) - 记录值:
v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BA...(此处省略长串公钥)...IDAQAB

5. DMARC 记录 (TXT)
告诉接收方如何处理未通过 SPF 或 DKIM 验证的邮件。
- 记录类型: TXT
- 主机记录: _dmarc
- 记录值:
v=DMARC1; p=none; sp=none;
解释:
p=none表示目前只监控不拦截(适合初期调试)。稳定后可改为p=quarantine(隔离)或p=reject(拒绝)。

第五步:部署 Roundcube (Webmail 客户端)
为了方便在网页上收发邮件,我们需要部署 Roundcube ,想必大家可能见过这个界面,主色调蓝白色可以很方便的收发邮件,而且很多插件配合是一个很好的邮件管理 web 项目。
- 回到 1Panel 应用商店。
- 搜索
Roundcube并点击 安装。 - 配置参数:
- 名称:
roundcube - 数据库: 1Panel 会自动创建,保持默认即可。
- IMAP 服务器、SMTP 服务器: 填写 Mailserver 容器的连接地址。
- 推荐: 填写宿主机的内网 IP 或公网 IP ,例如
154.26.209.188我这里是绑定了域名,所以直接使用域名就好了。
- 推荐: 填写宿主机的内网 IP 或公网 IP ,例如
- 名称:

* **端口:**
* IMAP 端口:143 (非加密) 或 993 (SSL)
* SMTP 端口:25 (非加密) 或 587 (TLS)
* **端口外部访问:** 勾选,并在外部端口填入一个你喜欢的端口(如 8080 ),或者随后通过 1Panel 的“网站”功能做反向代理绑定域名(例如 `roundcube.yuhuiculture.icu`),在前面我已经添加了 roundcube 面板的地址,所以我这里也直接填入域名。
如果你不想绑定域名,也可以选择开放端口,然后使用
http://IP+端口的方式访问,默认端口是8080。但是我建议配置反代,开启 HTTPS 保证安装防护。
额外说明
Roundcube 安装的时候会让你选择数据库,如果你没有安装 mysql 数据库,可以在应用市场搜索 mysql ,然后默认选择安装,安装成功之后在点击 roundcube 安装,就可以选择安装的数据库了。
其实也可以使用 SQLite 但是 1Panel 的镜像默认是使用 mysql 的。
第六步:验证与测试
1. 登录 Roundcube 的 web 客户端
在浏览器访问 https://roundcube.yuhuiculture.icu 我这里的地址是开启了 HTTPS ,如果你没有开启或者绑定域名请使用 IP+端口的方式访问。
- 用户名: admin@yuhuiculture.icu
- 密码: 刚才 setup 命令设置的密码
如果能成功登录,说明 Roundcube 连接 Mailserver 成功。

2. 接收测试邮件
你可以尝试用你的 Gmail 或 QQ 邮箱给邮局发送一封邮件。
- 如果发送失败,请检查防火墙是否放行了 25, 143, 587 等端口,如果发送失败也有一封返回的邮件内容,根据报错优化相关的错误就好了。

3. 邮件体检
访问 Mail-Tester。
- 它会给你一个临时邮箱地址。
- 用你的 Roundcube 给这个地址发一封邮件。
- 点击“查看你的得分”。
- 目标是 10⁄10 分。如果分数低,它会详细列出是 DKIM 错误、SPF 错误还是缺少 PTR 记录。我这里显示只有7.7分是因为 rDNS 我没有去修改绑定,还有一些必要的 DNS 记录没有添加。因为每一个 IDC 厂家的 rDNS 修改法都不一样,所以我没有具有的记录操作。

预告
走到最后一步,也就是说明了你的邮箱搭建完成了,可以使用 Roundcube 去查看邮箱和发送邮箱,你自己的邮局也就搭建好了。但是如果你想要公开给别人访问或者注册还缺了一些步骤,限于篇幅原因我也就不细讲了。
后续我也会持续更新使用宝塔面板搭建邮局的教程,还有全自动的邮箱搭建脚本,不需要像现在一样这么麻烦去一步一步的设置安装组件。
有了自己的邮局也不是说就可以为所欲为了,很多服务器商家都有自己的 TOS ,发送垃圾邮件轻则关机警告重则删除服务器封号,所以还是要注意自己的使用。如果不想折腾也可以完全购买现成的邮箱服务,稳定而且还安全唯一缺点就是现在发送频率。
这是我见过最长的帖子了