一、速览:BillionMail 能帮你做什么

入门

BillionMail 是一套开源的 邮件服务器(MailServer)邮件营销平台 的组合体。邮件服务器负责收发邮件,相当于你自建的"邮局";邮件营销平台则帮你批量发送新闻通讯、促销邮件和通知邮件,相当于"邮局的批量发信窗口"。

它与 Gmail 企业版或 Mailchimp 这类付费服务最大的区别是:完全自托管。你用自己的服务器、自己的域名、自己的数据,不需要按月付费,也不用担心平台倒闭或数据被锁。对于月发送量较大的团队,一年省下的订阅费相当可观。

BillionMail 由宝塔团队(aaPanel)开发,使用 Go 语言编写,目前在 GitHub 上已获得超过 1.5 万 Star。项目内置了邮件发送、送达率统计、客户管理、模板编辑等功能,还集成了 RoundCube 网页邮箱,让你可以在浏览器里直接收发邮件。

读完本教程,你将能够在一台 Linux 服务器上完成部署、绑定域名、配置 DNS 验证、发送第一封营销邮件,并学会日常管理和升级方法。

二、快速部署:8 分钟跑起来

入门

部署 BillionMail 需要一台 能联网的 Linux 服务器(建议 2 核 4G 内存以上),以及一个 你拥有管理权的域名。域名是用来发信的"门牌号",收件人看到的是你域名下的邮箱地址,比如 newsletter@你的域名.com

服务器需要安装 Docker(一种把软件连同运行环境打包成"集装箱"、在任何机器上都能直接运行的工具)。如果你还没有安装 Docker,可以先执行以下命令:

curl -fsSL https://get.docker.com | bash

安装完成后,执行下面这条命令克隆项目并启动:

cd /opt && git clone https://github.com/aaPanel/BillionMail && cd BillionMail && bash install.sh

安装过程大约需要 8 分钟,脚本会自动拉取镜像、启动容器、生成默认配置。安装完成后,你会看到管理后台的访问地址和默认账号密码。

如果你不想用安装脚本,也可以手动方式启动:复制环境变量文件后用 Docker Compose 拉起服务。两种方式效果相同,推荐新手直接用脚本。

cd /opt && git clone https://github.com/aaPanel/BillionMail && cd BillionMail && cp env_init .env && docker compose up -d

安装完成后,在浏览器中访问 http://服务器IP:端口 就能打开管理后台。首次登录请尽快修改默认密码。

三、配置详解:连接你的域名

进阶 · 推荐细读

安装只是第一步,真正让邮件能发出去的关键是绑定域名并完成 DNS 验证。DNS(Domain Name System)是互联网的"电话簿",把域名翻译成服务器 IP 地址。邮件服务商(如 Gmail、Outlook)会检查你域名的 DNS 记录来确认发信方是否可信,所以这一步不能跳过。

登录管理后台后,按照以下流程操作:

  1. 在「域名管理」中添加你的发送域名(例如 example.com
  2. 系统会生成一组 DNS 记录,包括 SPF、DKIM、DMARC 三种类型。SPF 声明"哪些服务器有权用这个域名发信",DKIM 给邮件加数字签名防止篡改,DMARC 告诉收件方"验证失败时该怎么处理"
  3. 登录你的域名注册商后台,把这组记录添加到 DNS 解析中
  4. 回到 BillionMail 点击「验证」,系统会自动检测记录是否生效,并自动开启免费 SSL 证书

BillionMail 管理后台界面

DNS 记录生效通常需要几分钟到几小时不等,取决于你的域名服务商。验证通过后,你的域名就具备了发信资格。

建议使用一个独立的子域名(如 mail.example.com)作为发信域名,而不是主域名。这样即使发信声誉受损,也不会影响主域名的正常邮件收发。

四、功能导览:创建你的第一封营销邮件

入门

域名验证通过后,就可以开始创建邮件营销活动了。整个流程分为三步:建联系人列表、写邮件内容、设置发送计划

第一步:管理联系人

在「客户管理」中导入或手动添加联系人。你可以给联系人打上标签(如"新用户""老客户"),方便后续按标签分组发送。BillionMail 支持 CSV 批量导入,从 Excel 导出的联系人表格可以直接上传。

第二步:编辑邮件内容

在「营销活动」中点击「新建」,选择邮件模板或直接使用可视化编辑器。编辑器支持拖拽图片、按钮、文字模块,不需要懂 HTML 代码。你还可以插入个性化变量,比如收件人姓名,让每封邮件看起来都是专门写给对方的。

第三步:设置发送计划

选择要发送的联系人列表和标签,设定发送时间(立即发送或定时发送),点击确认即可。发送过程中,后台会实时显示送达率、打开率和点击率。

BillionMail 项目发展历史

收发日常邮件

除了营销功能,BillionMail 还内置了 RoundCube 网页邮箱,访问路径为 http://服务器IP/rc/webmail。你可以用它收发日常邮件,也可以用任意邮件客户端(如 Outlook、Thunderbird)通过 IMAP/SMTP 协议连接。

五、常见问题与运维命令

进阶 · 推荐细读

端口被占用怎么办?

BillionMail 默认使用 25(SMTP)、143(IMAP)、587(提交端口)、993(IMAPS)等端口。如果启动时报端口冲突,先检查是否有其他邮件服务占用:

ss -tlnp | grep -E ':(25|143|587|993)'

找到占用进程后,停止该服务或修改 BillionMail 的端口映射配置。

邮件发不出去?

最常见的原因是 DNS 记录未生效或配置错误。使用 bm show-record 命令查看当前域名的 DNS 记录要求,然后逐一核对。另外,建议为服务器设置反向 DNS(PTR 记录),很多邮件服务商会拒绝没有 PTR 记录的服务器发来的邮件。

如何查看默认登录信息?

bm default

这条命令会显示管理后台的地址、用户名和初始密码。

如何升级到最新版本?

bm update

升级前建议先备份数据。BillionMail 的数据存储在 Docker 卷中,备份时直接备份整个 /opt/BillionMail 目录即可。

管理命令速查

命令 作用
bm help 显示所有可用命令
bm default 查看默认登录信息
bm show-record 查看域名 DNS 记录要求
bm update 升级 BillionMail

数据备份策略

建议每天定时备份 /opt/BillionMail 目录到其他存储位置。你可以用 crontab 添加定时任务:

0 2 * * * tar -czf /backup/billionmail-$(date +\%Y\%m\%d).tar.gz /opt/BillionMail

六、进阶:反向代理与 HTTPS

深入 · 老手可选

默认情况下,BillionMail 通过 IP 加端口访问。如果你希望用域名访问管理后台,并启用 HTTPS,可以配置反向代理。反向代理(Reverse Proxy) 相当于前台接待员,把访客的请求转发给后台的具体服务,同时可以统一管理 SSL 证书。

推荐使用 Caddy 或 Nginx 作为反向代理。以 Caddy 为例,配置非常简洁:

mail.example.com {
    reverse_proxy localhost:8080
}

Caddy 会自动申请并续期 SSL 证书,无需手动干预。配置完成后,你就可以通过 https://mail.example.com 安全地访问管理后台了。

注意:如果你在 BillionMail 前面加了反向代理,需要确保代理层透传真实的客户端 IP,否则邮件发送日志中的来源 IP 会全部显示为代理服务器地址,影响送达率分析。

至此,你已经完成了从零部署到日常运维的全流程。BillionMail 的完整能力远不止本文介绍的这些,随着你使用深入,还可以探索 API 接口、邮件模板变量、自动化触发邮件等高级功能。

项目信息

项目
仓库 Billionmail/BillionMail
语言 Go
Star 15,484
Fork 1,682
主页 http://www.billionmail.com/

参考链接

延伸阅读

想继续探索?这些同领域的教程可能也适合你: