Debian 邮件系统安装教程
Debian 12 / 13 环境下部署宝塔面板、斑马邮箱管理程序与 hMailServer 邮件服务。
系统选择与依赖安装
Linux Debian 系统 + 宝塔 Linux 面板 + Nginx + PHP + MySQL 兼容数据库 + hMailServer 6.3.8。
1.1 系统选择
其他 Linux 系统的安装命令可能存在差异,请根据实际系统自行查阅对应官方文档。
1.2 检查运行软件并安装基础工具
请使用 root 账户在宝塔终端或 SSH 终端执行。本教程面向 Debian 12 / 13,软件安装使用 Debian 自带的 apt-get;其他步骤尽量采用常见 Linux Shell、coreutils、sudo 和 systemd 命令。
一次执行基础工具安装,并在安装完成后检查 curl 是否可用:
apt-get update && apt-get install -y curl sudo ca-certificates libmariadb3 iproute2 && command -v curl
正确返回示例(点击展开)
/usr/bin/curl
1.3 安装宝塔面板
本教程统一使用宝塔官方稳定版安装脚本。Debian 12 和 Debian 13 均使用同一条安装命令,不区分系统版本。第 1.2 步已安装 curl,直接使用 curl 下载并执行安装脚本。
curl -fL --retry 3 --connect-timeout 15 -o installStable_12.sh https://download.bt.cn/install/installStable_12.sh && bash installStable_12.sh 3Tmtilpm
安装完成后,如需查看宝塔面板登录信息,可执行:
bt default
正确返回示例(点击展开)
外网面板地址: http://服务器公网IP:面板端口/安全入口 内网面板地址: http://服务器内网IP:面板端口/安全入口 username: 安装时生成的用户名 password: 安装时生成的密码
调出宝塔综合查询操作面板:
bt
正确返回示例(点击展开)
宝塔面板命令行管理菜单 …… 请选择要执行的功能:
1.4 放行防火墙
根据实际部署情况,在服务器防火墙或云厂商控制台放行以下端口:
| 端口 | 用途 |
|---|---|
宝塔面板入口 | 安装后会随机生成端口号 |
80、443 | 网站 HTTP / HTTPS |
25、465、587 | SMTP 邮件收发与客户端提交 |
110、143、993、995 | POP3 / IMAP 邮件接收 |
腾讯云检查「防火墙」规则,阿里云检查「安全组」规则。
1.5 域名解析
在域名服务商的 DNS 管理页面,增加以下解析记录:
| 主机记录 | 记录类型 | 记录值 | 说明 |
|---|---|---|---|
mail | A | 服务器 IP | 邮件服务域名 |
@ | MX | mail.你的域名 | 主域名收信服务器 |
* | A | 服务器 IP | 可省略 |
如果要使用子域名作为邮箱后缀,还需要增加对应的解析记录:
前缀 A 服务器 IP
1.6 安装网站运行环境
进入宝塔面板 → 软件商店,安装以下运行环境:
| 软件 | 要求 / 建议 |
|---|---|
| Nginx | 安装 Nginx |
| MySQL 兼容数据库 | 建议使用 MariaDB 10.4 或 MariaDB 11.8 |
| PHP | PHP 8.2 以上版本(新部署优先 8.3、8.4 或 8.5) |

1.7 安装启用 PHP 拓展
PHP 8.2 以上版本(新部署优先 8.3、8.4 或 8.5)大部分拓展已经安装,可能需要手动修改 PHP 配置文件启用。打开 PHP 设置中的配置文件,检查以下拓展是否启用:
extension=openssl extension=mbstring extension=pdo_mysql extension=sodium extension=zip extension=curl
如果对应配置行前面存在分号 ;,删除分号即可启用。修改后重启 PHP。


1.8 创建空数据库
进入宝塔面板 → 数据库 → 添加数据库,创建一个全新的空数据库。
| 项目 | 填写内容 |
|---|---|
| 数据库名称 | hmailserver |
| 数据库用户名 | hmailserver |
| 数据库密码 | 随机数据库密码 |
| 访问权限 | 本地服务器 |

安装 hMailServer 6.3.8
在 Debian 12 / 13 上安装 hMailServer 6.3.8,配置 MariaDB、服务和 REST API。
2.1 检查系统架构
可在宝塔终端或 SSH 终端中执行,确认服务器 CPU 架构。
uname -m
正确返回示例(点击展开)
x86_64
2.2 下载并安装 hMailServer
以下命令适用于 hMailServer 6.3.8,使用 root 权限执行。请在下拉框中选择服务器实际安装的 Debian 版本,页面只显示对应安装包和命令。
Debian 13 x86-64(amd64)
curl -fL --retry 3 --connect-timeout 15 -o hmailserver_6.3.8-1~debian13_amd64.deb https://www.progressiverobot.com/hmailserver/Hmail-server/6.3.8/hmailserver_6.3.8-1~debian13_amd64.deb && \ echo 'f36cbfb856f7f6a33bc1b7459d01b015d1cdc1905208c308f1f48223d84245c1 hmailserver_6.3.8-1~debian13_amd64.deb' | sha256sum -c - && \ apt-get install -y ./hmailserver_6.3.8-1~debian13_amd64.deb
正确返回示例(点击展开)
curl 下载进度完成(100%) ... hmailserver_6.3.8-1~debian13_amd64.deb: OK ... Unpacking hmailserver (...) ... Setting up hmailserver (...) ...
Debian 12 x86-64(amd64)
curl -fL --retry 3 --connect-timeout 15 -o hmailserver_6.3.8-1~debian12_amd64.deb https://www.progressiverobot.com/hmailserver/Hmail-server/6.3.8/hmailserver_6.3.8-1~debian12_amd64.deb && \ echo 'e35afb6653614a5973b2c6a14ae908ef819938097a5bfdc6abf1511c806bdc14 hmailserver_6.3.8-1~debian12_amd64.deb' | sha256sum -c - && \ apt-get install -y ./hmailserver_6.3.8-1~debian12_amd64.deb
正确返回示例(点击展开)
curl 下载进度完成(100%) ... hmailserver_6.3.8-1~debian12_amd64.deb: OK ... Unpacking hmailserver (...) ... Setting up hmailserver (...) ...
官方版本与校验值来源:hMailServer 6.3.8 下载与校验页面。本节命令针对 x86-64(amd64);如果 uname -m 输出 aarch64,请下载对应 Debian 版本的 ARM64(arm64)软件包,不要执行这里的 amd64 命令。
2.3 配置 MariaDB 连接
编辑 hMailServer 数据库配置文件:
/etc/hmailserver/hMailServer.ini
找到 [Database] 配置段,按下面内容填写。数据库密码必须与第 1.8 步创建的 MariaDB 用户密码一致:
[Database] Type=MySQL Server=127.0.0.1 Database=hmailserver Username=hmailserver Password=数据库密码 Passwordencryption=0 Port=3306 Internal=0
![宝塔文件管理器中打开 /etc/hmailserver/hMailServer.ini,显示 MariaDB 的 [Database] 配置段。](linux_img/2.3.png)
2.4 检查配置文件并初始化数据库
先读取配置报告,并确认输出中的 Database type: 1(表示 Type=MySQL,兼容 MariaDB);再实际测试数据库连接,最后初始化数据库。注意:--check-config 只输出配置报告,本身始终返回退出码 0,并不会替你判断配置是否正确,因此命令额外用 grep 检查数据库类型,类型不正确就停止。
config_output=$(sudo -u hmailserver -- hmailserver --check-config) && \ printf '%s\n' "$config_output" && \ printf '%s\n' "$config_output" | grep -Eq '^Database type:[[:space:]]*1[[:space:]]*$' && \ sudo -u hmailserver -- hmailserver --check-database && \ sudo -u hmailserver -- hmailserver --create-database
配置文件检查成功示例(点击展开)
Configuration file: /etc/hmailserver/hMailServer.ini Program directory: /usr/share/hmailserver/ Data directory: /var/lib/hmailserver Log directory: /var/log/hmailserver Database type: 1
MariaDB 连接成功示例(点击展开)
Configuration: /etc/hmailserver/hMailServer.ini Database: MySQL/MariaDB on 127.0.0.1:3306, database hmailserver, as hmailserver Connected.
--check-database 退出码 0 表示连接成功、1 表示连接失败、2 表示数据库配置不完整;只有连接成功才会继续执行数据库初始化。数据库初始化成功示例(点击展开)
Database hmailserver created on MySQL at schema version 6108, from /usr/share/hmailserver/DBScripts/CreateTablesMySQL.sql.
2.5 设置 hMailServer 管理员密码
默认使用 123456。
若使用其他密码,需要修改 宝塔目录/wwwroot/mail_admin/config/hmailserver_api.php 配置文件中的 hMailServer 管理员密码配置项,确保与实际设置的密码一致。
设置 hMailServer 管理员密码,执行以下命令后按终端提示输入:
hmailserver --set-admin-password
正确返回示例(点击展开)
(输入密码时终端不显示字符) 命令完成后返回 shell 提示符。 紧接着执行:echo $? 0
- 这是 hMailServer 管理后台的密码。
- 它不是 MariaDB 数据库密码,也不是斑马邮箱 PHP 后台密码。
- 终端输入密码时通常不会显示字符。
- 本教程默认使用 123456;如果改用其他密码,必须同步修改 PHP 后台 API 配置文件中的对应密码。
- 默认密码的使用前提是 REST API 只监听 127.0.0.1:8045,仅供本机 PHP 管理后台调用;不得将监听地址改为 0.0.0.0 或公网 IP。
- 必须保持 TCP 8045 的公网入站访问关闭:不要在 Debian 防火墙、宝塔防火墙、云安全组或服务器厂商防火墙中添加 8045 放行规则。不开放公网 8045 不影响本机通过 127.0.0.1 调用 API。
- 如果服务器上运行其他不可信本地程序,仍建议将管理员密码改为独立强密码。
2.6 启动 hMailServer 服务
请在 root 终端执行,设置开机自动启动、立即启动服务,并检查运行状态:
systemctl enable --now hmailserver && systemctl is-active hmailserver && systemctl --no-pager --full status hmailserver && ss -lntp | grep hmailserver
正确返回示例(点击展开)
Created symlink .../multi-user.target.wants/hmailserver.service → .../hmailserver.service.
active
● hmailserver.service - hMailServer, a mail server for SMTP, IMAP and POP3
Loaded: loaded (.../hmailserver.service; enabled; preset: enabled)
Active: active (running) since ...以上命令还会检查 hMailServer 当前监听的 TCP 端口。若没有 LISTEN 输出,请先检查服务状态和日志。
正确返回示例 · 邮件端口监听(点击展开)
LISTEN 0 4096 0.0.0.0:25 0.0.0.0:* users:(("hmailserver",pid=1234,fd=20))
LISTEN 0 4096 0.0.0.0:587 0.0.0.0:* users:(("hmailserver",pid=1234,fd=21))
LISTEN 0 4096 0.0.0.0:110 0.0.0.0:* users:(("hmailserver",pid=1234,fd=22))
LISTEN 0 4096 0.0.0.0:143 0.0.0.0:* users:(("hmailserver",pid=1234,fd=23))2.7 启用 REST API
请在 root 终端执行,将 REST API 设置为仅本机访问的 8045 端口,然后重启服务并检查端口监听:
hmailserver --set-setting RestApiPort=8045 && \ hmailserver --set-setting RestApiBindAddress=127.0.0.1 && \ systemctl restart hmailserver && \ systemctl is-active hmailserver && \ ss -lntp | grep ':8045'
正确返回示例(点击展开)
active
LISTEN 0 4096 127.0.0.1:8045 0.0.0.0:* users:(("hmailserver",pid=1234,fd=30))如果命令未正常完成,请检查服务状态与日志:
journalctl -u hmailserver -n 100 --no-pager
部署核对
| 检查项 | 核对内容 |
|---|---|
| 系统版本与架构 | Linux 使用对应 Debian 12 / 13 软件包;Windows 使用 Windows Server 2016+ x64 安装包。 |
| 数据库 | PHP 后台与 hMailServer 使用同一个 hmailserver 数据库,并确认账号密码一致。 |
| 管理员密码 | 斑马邮箱后台密码在首次登录后修改;hMailServer 管理员密码按本教程要求设置为 123456,并限制管理接口访问范围。 |
| 数据库初始化 | 已对新建的空数据库执行 hMailServer 初始化,并完成后台字段补齐。 |
| REST API | Linux 与 Windows 均只绑定 127.0.0.1:8045,供本机 PHP 调用;公网防火墙和云安全组不得放行 TCP 8045。 |
| 敏感配置 | 限制 hMailServer.ini 和 PHP 数据库配置文件的读取权限。 |
安装配置斑马邮箱程序
上传程序、配置数据库与 hMailServer 连接,创建 Nginx 站点并完成后台初始化。
3.1 上传程序并解压
wwwroot/
└── mail_admin/
├── config/
│ └── database.php
└── public/
└── index.php以上为关键目录结构示意,其他程序文件和目录以实际压缩包内容为准。
3.2 配置数据库连接信息
宝塔目录/wwwroot/mail_admin/config/database.php
按实际环境填写数据库地址、数据库名称、用户名和密码。数据库名称与用户名均为 hmailserver,密码使用创建数据库时设置的密码。
3.3 添加站点
进入宝塔面板 → 网站 → 添加站点,填写准备使用的域名。
网站域名请使用第 1.5 步中配置的 mail 记录;确认 DNS 解析已添加后,再继续创建站点。
宝塔目录/wwwroot/mail_admin
宝塔目录/wwwroot/mail_admin/public


3.4 Nginx 伪静态设置
进入宝塔面板 → 网站 → 对应站点 → 设置 → 伪静态,将以下规则粘贴到伪静态规则编辑框中。保存后检查配置并重启 Nginx。
location ~ ^/(admin|web|webmail|hmailadmin)/index$ {
return 301 /$1/$is_args$args;
}
location ~ ^/(admin|web|webmail|hmailadmin)/(?!index\.html$)(.+)\.html$ {
return 301 /$1/$2$is_args$args;
}
location / {
try_files $uri $uri.html $uri/ @thinkphp;
}
location @thinkphp {
rewrite ^/(.*)$ /index.php?s=/$1 last;
}
3.5 系统运行状态与环境诊断
使用浏览器打开以下地址:
你的域名/check
检查数据库连接和 PHP 扩展是否正常:
- 数据库连接异常:检查第 3.2 步数据库配置,以及第 2.3 步 hMailServer 数据库配置。
- PHP 扩展异常:检查第 1.7 步 PHP 扩展是否已启用,并确认修改后已重启 PHP。
3.6 首次登录斑马邮箱管理后台
网站和数据库配置完成后,使用浏览器打开绑定的域名:
你的域名/admin
| 项目 | 初始值 |
|---|---|
| 管理员账户 | admin |
| 初始密码 | 123456 |
3.7 修改管理员账户密码
3.8 关闭系统检查
确认网站、数据库和 PHP 环境均运行正常后,为减少公开的系统诊断信息,可在管理后台关闭系统检查:
系统管理 → 邮箱与系统设置 → 系统检查(关闭)
hMailServer 配置修改
切换到邮局管理,调整登录失败保护和邮件服务器端口,最后重启 hMailServer 服务。
4.0 切换到邮局管理
打开斑马邮箱管理程序,切换到「邮局管理」模块,进入 hMailServer 相关设置。

4.1 关闭登录失败后自动封禁
进入以下设置位置:
设置与运维 → 系统设置 → 服务器

4.2 在服务器端口中添加 465、587、993、995
进入「服务器端口」设置,检查以下端口是否已经存在;已存在且配置正确时,不需要重复添加。
| 端口 | 协议 | 安全方式 | 用途 |
|---|---|---|---|
465 | SMTP | SSL/TLS | 邮件客户端加密提交发送 |
587 | SMTP | STARTTLS | 邮件客户端提交发送 |
993 | IMAP | SSL/TLS | 加密收取与同步邮件 |
995 | POP3 | SSL/TLS | 加密下载邮件 |




4.3 重启服务器
请在 root 终端执行;端口和服务器设置保存后,重启 hMailServer 服务并检查状态:
systemctl restart hmailserver && systemctl is-active hmailserver
active。如果返回 failed 或 inactive,请检查服务状态和日志。故障排查
根据故障现象检查对应的安装和配置步骤。
| 故障现象 | 优先检查步骤 |
|---|---|
| 1. 网站无法正常打开 | 1.3、1.4、1.5、1.6、2.3、3.4、3.5 |
| 2. 无法正常收到邮件 | 1.4、1.5、2.1、2.2、2.3、2.6、4.2、4.3 |
| 3. 邮箱用户端多次登录失败后无法登录 | 4.1、4.3 |
| 4. 切换至邮局服务管理后状态显示「未连接」 | 重点检查 2.7(REST API 8045)、2.3(hMailServer 数据库配置)和 4.3(服务状态)。 |
Windows 系统部署
Windows Server + 宝塔 Windows 面板 + Apache + PHP + MySQL 兼容数据库 + hMailServer 6.3.8。
系统选择与依赖安装
选择 Windows Server,安装宝塔 Windows 面板,配置防火墙、域名解析、Apache、数据库和 PHP 环境。
1.1 系统选择
1.2 安装宝塔 Windows 面板
使用宝塔安装程序提供的登录信息进入面板后台。后续的软件安装、数据库同步、网站配置均在宝塔面板中完成。
1.3 放行防火墙端口
| 放行项目 | 端口 / 说明 |
|---|---|
| 宝塔面板入口 | 默认 8888,建议修改为自定义端口 |
| 网站 | 80、443 |
| 邮件服务 | 25、110、143、993、995、587、465 |
腾讯云检查「防火墙」规则,阿里云检查「安全组」规则。
1.4 配置域名解析
进入域名服务商的 DNS 管理页面,按照下表添加解析记录。将「服务器IP」和「你的域名」替换为实际信息。
| 主机记录 | 记录类型 | 记录值 | 说明 |
|---|---|---|---|
| A | 服务器IP | 邮箱服务主机 | |
| @ | MX | mail.你的域名 | 根域名邮件投递目标 |
| * | A | 服务器IP | 可省略;按实际域名使用情况决定 |
如果要使用子域名作为邮箱后缀,还需要增加对应的解析记录:
前缀 A 服务器 IP
1.5 安装网站运行环境
| 软件 | 教程建议 |
|---|---|
| Apache | 安装并启用 Apache 网站服务 |
| MySQL 兼容数据库 | 建议使用 MariaDB 10.4 或 MariaDB 11.8 |
| PHP | 安装 PHP 8.2 以上版本;新部署优先选择 8.3、8.4 或 8.5 |

1.6 安装并启用 PHP 扩展
PHP 8.2 以上版本(新部署优先 8.3、8.4 或 8.5)大部分扩展通常已经安装,可能需要在 PHP 配置文件中手动启用。检查以下扩展配置是否存在并处于启用状态:
extension=openssl extension=mbstring extension=pdo_mysql extension=sodium extension=zip extension=curl
如果扩展配置行前面有分号 ;,去掉分号后保存。


安装 hMailServer 6.3.8
下载并校验 Windows x64 安装程序,完成 hMailServer 安装、MariaDB 数据库初始化和 REST API 设置。
2.1 下载并校验 hMailServer 6.3.8
2.2 正式安装 hMailServer 6.3.8
运行安装程序,按下面图片顺序完成安装。不同页面按图中红色箭头选择或点击 Next。









初始化 hMailServer 数据库
安装完成后,继续运行 hMailServer Database Setup 向导,连接宝塔中安装的 MySQL 兼容数据库。



先在宝塔面板 → 数据库中查看 root 账户密码。点击「root密码」查看或设置 root 密码,并准备填入数据库连接信息。

| 字段 | 填写内容 |
|---|---|
| Database server address | 127.0.0.1 |
| Port | 3306 |
| Database name | hmailserver |
| Username | root |
| Password | 宝塔面板中数据库 root 账户密码 |




2.3 启用 hMailServer REST API



安装配置斑马邮箱程序
上传斑马邮箱程序,配置数据库账号、hMailServer 数据库连接、Apache 网站和后台初始化设置。
3.1 上传程序并解压
wwwroot/
└── mail_admin/
├── config/
│ └── database.php
└── public/
└── index.php3.2 同步宝塔数据库列表并设置数据库账号



3.3 修改斑马邮箱数据库配置文件
宝塔目录\wwwroot\mail_admin\config\database.php
| 配置项 | 填写内容 |
|---|---|
| 数据库地址 | 127.0.0.1 |
| 数据库名称 | hmailserver |
| 数据库用户名 | hmailserver |
| 数据库密码 | 第 3.2 步重置的 hmailserver 用户密码 |
3.4 修改 hMailServer 数据库配置
C:/Program Files/hMailServer/Bin/hMailServer.INI
将 [Database] 配置段按下面内容填写。数据库密码必须与第 3.2 步重置的 hmailserver 用户密码一致:
[Database] Type=MySQL Server=127.0.0.1 Database=hmailserver Username=hmailserver Password=数据库密码 Passwordencryption=0 Port=3306 Internal=0
![宝塔文件管理器中打开 C:/Program Files/hMailServer/Bin/hMailServer.INI,显示 [Database] 数据库连接配置段。](win_img/3.4.png)
3.5 添加网站
| 网站设置项 | 填写 / 选择 |
|---|---|
| 域名 | mail.你的域名,例如 mail.example.com |
| 网站根目录 | 宝塔网站目录下的 wwwroot/mail_admin |
| 运行目录 | /public |
| 程序类型 | PHP |


3.6 设置 Apache 伪静态
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(admin|web|webmail|hmailadmin)/index$ /$1/ [R=301,L]
RewriteRule ^(admin|web|webmail|hmailadmin)/(?!index\.html$)(.+)\.html$ /$1/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [END]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [END]
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,END]
</IfModule>
3.7 系统运行状态与环境诊断
你的域名/check
- 数据库连接异常:检查第 3.2 步数据库同步、密码和权限,以及第 3.3 步 database.php 配置。
- PHP 扩展异常:检查第 1.6 步 PHP 扩展是否启用,并确认已重启 PHP。
3.8 首次登录斑马邮箱管理后台
| 项目 | 初始值 |
|---|---|
| 管理员账户 | admin |
| 初始密码 | 123456 |
3.9 修改管理员账户密码
修改完成后,使用新密码重新登录,确认管理员密码已生效。
3.10 关闭系统检查
hMailServer 配置修改
切换到邮局管理,调整登录失败保护,并添加邮件客户端使用的 SMTP、IMAP 和 POP3 安全端口。
4.0 切换到邮局管理

4.1 关闭登录失败后自动封禁

4.2 在服务器端口中添加 465、587、993、995
进入「邮件投递 → 服务器端口」,检查端口列表。已存在且配置正确的端口不需要重复添加;缺少的端口按下表补充。
| 端口 | 协议 | 连接安全 | 用途 |
|---|---|---|---|
465 | SMTP | TLS | 加密 SMTP 提交 |
587 | SMTP | STARTTLS(可选) | 邮件客户端提交发送 |
993 | IMAP | TLS | 加密收取 / 同步邮件 |
995 | POP3 | TLS | 加密下载邮件 |




4.3 重启服务器
故障排查
根据出现的问题,按对应步骤逐项检查,不要跳过数据库连接、端口放行和服务重启。
常见问题与检查步骤
| 问题现象 | 优先检查步骤 |
|---|---|
| 1. 网站无法正常打开 | 1.3 防火墙端口;1.4 域名解析;1.5 网站运行环境;1.6 PHP 扩展;3.3 数据库配置;3.5 站点设置;3.6 Apache 伪静态。 |
| 2. 无法正常收到邮件 | 1.4 域名解析;2.1 安装包;2.2 hMailServer 安装和数据库初始化;2.3 REST API;3.4 hMailServer 数据库配置;4.2 邮件服务端口;4.3 重启服务。 |
| 3. 邮箱用户端多次登录失败后无法登录 | 4.1 登录失败后自动封禁设置;4.3 重启服务。 |
| 4. 切换至邮局服务管理后状态为「未连接」 | 特别检查 3.4:hMailServer.INI 的数据库地址、数据库名、用户名和密码是否正确,密码是否与第 3.2 步重置的 hmailserver 用户密码一致。 |