GoForum🌐 V2EX

1Panel 自建邮局教程: Docker Mailserver + Roundcube 部署指南

zp872571679 · 2026-03-07 13:33 · 0 次点赞 · 4 条回复

前言:

我相信很多人都有搭建邮局的需求,但是除了直接购买邮局服务器,还是有很大一部分人是想要自己搭建自己的邮局的。今天有空就准备写一篇基于 Mailserver+Roundcube 搭建邮局的教程。最主要的原因还是帮助大家一点一点的提升自己,掌握更多 VPS 的玩法。

但在此之前,必须先泼一盆冷水。

自建邮局有以下缺陷:

  1. 配置复杂,技术门槛高: 涉及 DNS 各类记录( A, MX, SPF, DKIM, DMARC )、反向解析( PTR )、SSL 证书以及 Linux 运维知识。
  2. 维护成本高: 需要定期更新和维护服务器,防止被漏洞利用成为肉鸡。
  3. 邮件送达率不稳定: 即使你配置得当,IP 也很容易被大厂( Gmail, Outlook )拉黑,或者直接进入垃圾邮件箱。IP 预热是一个漫长的过程。
  4. 端口封锁: 绝大多数云服务商默认封锁 25 端口,需要提交工单申请解封,且审核严格。

如果这些缺点你都能接受,或者只是想单纯的学习一下邮局的搭建,那请继续的看下去吧


第一步:环境准备

在开始之前,请确保满足以下条件:

  1. 服务器( VPS ): 安装了 1Panel 面板。这里可以学习我以前的文章:告别“环境污染”! Debian 服务器安装 1Panel 面板教程:专治 Docker 困难户
  2. 域名: 拥有域名的管理权限(用于修改 DNS ),可以去 spaceship 、namecheap 或者国内的阿里云、腾讯云购买。我这里是托管在了 CloudFlare 方便解析和安全,不同的托管平台可能配置不一样但是也是大同小异的。 > 购买域名教程:Spaceship 域名注册优惠购买使用教程
  3. 25 端口: 确认服务器的 25 端口是开放的(使用 telnet smtp.gmail.com 25 测试,如果通了就是开放的,不通请找服务商申请)。

开发 25 端口的商家我推荐:RackNerd 、Netcup 、CloudClone 、BWH (搬瓦工),有一些默认没开需要申请,有一些默认开启了。RackNerd 的 rDNS 需要工单开启、Netcup 可以在服务器后台自主设置 rDNS 信息。

在我的传家宝监控都可以找到:传家宝 VPS 监控

image


第二步:安装 Docker Mailserver

  1. 登录 1Panel 面板
  2. 点击侧边栏 应用商店
  3. 搜索 Mailserver 并点击 安装

image

  1. 配置参数:

    • 名称: 保持默认 mailserver

    • OVERRIDE_HOSTNAME: 输入你的邮件服务器主机名,例如 mail.yuhuiculture.icu(请替换为你自己的域名)。 image

    • 端口: 保持默认( 25, 143, 587, 993 等)。

    • 高级设置: 建议勾选“端口外部访问”。

  2. 点击 确认 进行安装,等待容器启动显示“已启动”。

image


第三步:创建账户与生成 DKIM

1. 创建首个账户

点击 1Panel 侧边栏 容器,找到 mailserver 容器,点击右侧的 终端 图标进入容器命令行。

image

输入以下命令创建邮箱账户(将 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/

image

进入宿主机的该目录,找到 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

image

5. DMARC 记录 (TXT)

告诉接收方如何处理未通过 SPF 或 DKIM 验证的邮件。

  • 记录类型: TXT
  • 主机记录: _dmarc
  • 记录值: v=DMARC1; p=none; sp=none;

解释: p=none 表示目前只监控不拦截(适合初期调试)。稳定后可改为 p=quarantine(隔离)或 p=reject(拒绝)。

image


第五步:部署 Roundcube (Webmail 客户端)

为了方便在网页上收发邮件,我们需要部署 Roundcube ,想必大家可能见过这个界面,主色调蓝白色可以很方便的收发邮件,而且很多插件配合是一个很好的邮件管理 web 项目。

  1. 回到 1Panel 应用商店
  2. 搜索 Roundcube 并点击 安装
  3. 配置参数:
    • 名称: roundcube
    • 数据库: 1Panel 会自动创建,保持默认即可。
    • IMAP 服务器、SMTP 服务器: 填写 Mailserver 容器的连接地址。
      • 推荐: 填写宿主机的内网 IP 或公网 IP ,例如 154.26.209.188我这里是绑定了域名,所以直接使用域名就好了。

image

*   **端口:**
    *   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 成功。

image

2. 接收测试邮件

你可以尝试用你的 Gmail 或 QQ 邮箱给邮局发送一封邮件。

  • 如果发送失败,请检查防火墙是否放行了 25, 143, 587 等端口,如果发送失败也有一封返回的邮件内容,根据报错优化相关的错误就好了。

image

3. 邮件体检

访问 Mail-Tester

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

image


预告

走到最后一步,也就是说明了你的邮箱搭建完成了,可以使用 Roundcube 去查看邮箱和发送邮箱,你自己的邮局也就搭建好了。但是如果你想要公开给别人访问或者注册还缺了一些步骤,限于篇幅原因我也就不细讲了。

后续我也会持续更新使用宝塔面板搭建邮局的教程,还有全自动的邮箱搭建脚本,不需要像现在一样这么麻烦去一步一步的设置安装组件。

有了自己的邮局也不是说就可以为所欲为了,很多服务器商家都有自己的 TOS ,发送垃圾邮件轻则关机警告重则删除服务器封号,所以还是要注意自己的使用。如果不想折腾也可以完全购买现成的邮箱服务,稳定而且还安全唯一缺点就是现在发送频率。

4 条回复
PeiXyJ · 2026-03-07 13:38
#1

这是我见过最长的帖子了

zp872571679 · 2026-03-07 13:43
#2

@PeiXyJ 你就说够不够细把

orion1 · 2026-03-07 14:03
#3

可以用来无限发广告吗

cyp0633 · 2026-03-07 14:53
#4

@orion1 部分云厂商给你开 25 端口之前就会让你提供预计发信频率的,没有合适的理由也会被打回

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: zp872571679
发布: 2026-03-07
点赞: 0
回复: 0