部署教程
程序是单个二进制文件,不需要安装数据库、PHP 或任何运行环境。
下面几种方式任选一种,最快几分钟就能跑起来。
一键安装脚本
适合全新的 Linux 服务器(Debian / Ubuntu / CentOS 均可)。以 root 身份执行:
curl -fsSL https://www.l7o.com/install.sh | bash
脚本内容按本站「版本发布」里配置的地址实时生成,
始终指向最新版本。也可以先查看脚本内容再执行。
脚本会自动完成:
- 识别系统架构,下载对应的 amd64 / arm64 程序
- 安装到
/opt/gomail
- 注册为 systemd 服务,开机自启、崩溃自动重启
- 放行 25 / 587 / 465 / 143 / 993 / 110 / 995 及网页端口
- 打印后台地址与首次登录密码
安装完成后请立即记录控制台打印的后台密码,它只显示一次。
忘记了也不要紧,执行 /opt/gomail/gomail -config /opt/gomail/config.json -reset-admin 新密码 可重置。
常用运维命令
systemctl status gomail # 查看运行状态
systemctl restart gomail # 重启
journalctl -u gomail -f # 查看实时日志
Docker 部署
邮件服务要占用多个标准端口,且收信时需要拿到发送方的真实 IP,
所以建议用 --network host。
方式一:直接跑(最快)
mkdir -p /opt/gomail-data
docker run -d --name gomail \
--network host \
--restart unless-stopped \
-v /opt/gomail-data:/data \
gomail:latest \
-config /data/config.json
方式二:自己构建镜像
下面两个文件都可以直接下载,内容已按本站最新版本生成:
# 下载后在同目录执行
curl -fsSL https://www.l7o.com/Dockerfile -o Dockerfile
docker build -t gomail:latest .
# 或者用 compose 一步到位
curl -fsSL https://www.l7o.com/docker-compose.yml -o docker-compose.yml
mkdir -p data
docker compose up -d
常用命令
docker logs -f gomail # 看日志(首次的后台密码在这里)
docker restart gomail # 重启
docker exec -it gomail sh # 进容器
两个要点:
① /data 目录务必挂载出来,数据库、配置、附件全在里面,不挂载则容器一删数据就没了。
② 授权绑定的是服务器特征码。删除并重建容器(不是 restart)可能导致特征码变化、授权失效,
此时在 VIP 页点一次「换绑到本机」即可恢复。
宝塔面板部署
宝塔的「Go 项目管理器」可以托管二进制程序,适合已经在用宝塔的用户。
-
安装 Go 项目管理器
宝塔面板 →「软件商店」→ 搜索「Go项目管理器」→ 安装。
-
上传程序
「文件」→ 新建目录 /www/wwwroot/gomail → 上传
gomail-linux-amd64,右键给它加上执行权限(属性设为 755)。
-
添加 Go 项目
打开 Go 项目管理器 →「添加项目」,按下表填写:
| 项目名称 | gomail |
| 运行目录 | /www/wwwroot/gomail |
| 启动文件 | gomail-linux-amd64 |
| 启动参数 | -config config.json |
| 项目端口 | 8080(与配置文件里的 http_addr 一致) |
-
放行端口
「安全」→ 放行 8080(网页)、25(收信)、
587、465、143、993。
云服务器还要去服务商控制台的安全组里放行同样的端口,只在宝塔里放行是不够的。
-
绑定域名(可选)
如果想用 https://mail.你的域名.com 访问网页端,
在「网站」里新建站点并设置反向代理到 http://127.0.0.1:8080,再申请 SSL 证书。
反向代理时,不要在 proxy_pass 末尾加斜杠:
proxy_pass http://127.0.0.1:8080; 是对的,
加了斜杠会把路径截断,导致后台地址打不开。
-
查看首次密码
在 Go 项目管理器里点「日志」,能看到首次启动打印的后台地址与管理员密码。
手动部署
1. 下载并运行
管理员尚未配置下载地址。请到
下载页获取程序,
或联系管理员在后台「版本发布」里上传。
首次运行会自动生成配置文件,并打印后台地址与管理员密码。
2. 注册为系统服务
cat > /etc/systemd/system/gomail.service <<'EOF'
[Unit]
Description=L7oMail Mail Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/gomail
ExecStart=/opt/gomail/gomail -config /opt/gomail/config.json
Restart=always
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now gomail
3. 放行端口
# firewalld(CentOS / RHEL)
firewall-cmd --permanent --add-port={25,587,465,143,993,110,995,8080}/tcp
firewall-cmd --reload
# ufw(Ubuntu / Debian)
ufw allow 25,587,465,143,993,110,995,8080/tcp
云服务器还需在服务商控制台的安全组里放行同样的端口。
部署完成后要做的三件事
- 添加域名
后台「域名管理」→ 添加你的域名,系统会自动生成需要配置的 DNS 记录。
- 配置 DNS 解析
把生成的 A、MX、SPF、DKIM、DMARC 记录填到域名服务商的解析里,
回到后台点「验证解析」逐项检查是否生效。
- 检查发信能力
后台「诊断与测试」会检测 25 / 587 / 465 三个端口的出站情况。
如果 25 被封(云服务器很常见),到「系统设置 → 发信方式」改用 587 或 465 中继发信。