首页
/ aaPanel/Billion-Mail 邮件系统 Docker 部署详解

aaPanel/Billion-Mail 邮件系统 Docker 部署详解

2025-07-07 06:10:01作者:温艾琴Wonderful

项目概述

Billion-Mail 是一个基于 Docker 容器化技术的邮件服务器解决方案,集成了完整的邮件服务组件栈。通过 docker-compose.yml 文件可以一键部署包含数据库、缓存、反垃圾邮件、邮件传输代理和 Web 邮件客户端等完整服务。

核心服务组件

1. PostgreSQL 数据库服务 (pgsql-billionmail)

作为整个邮件系统的数据存储核心,使用 PostgreSQL 17.4-alpine 镜像,具有以下特点:

  • 数据持久化:通过挂载 ./postgresql-data 目录确保数据安全
  • 环境变量配置:数据库名称、用户和密码通过环境变量注入
  • 网络隔离:使用专用网络 billionmail-network 并设置别名 pgsql
  • 端口映射:默认绑定到本地 25432 端口,可通过环境变量 SQL_PORT 自定义

2. Redis 缓存服务 (redis-billionmail)

采用 Redis 7.4.2-alpine 镜像,为系统提供高性能缓存支持:

  • 自定义启动脚本:通过 redis-conf.sh 进行初始化配置
  • 内存优化:设置 net.core.somaxconn=4096 提高连接数上限
  • 密码保护:通过 REDISPASS 环境变量设置访问密码

3. Rspamd 反垃圾邮件服务 (rspamd-billionmail)

使用定制镜像 billionmail/rspamd:1.1 提供专业的垃圾邮件过滤:

  • 依赖 Redis 服务进行数据存储和共享
  • 配置目录挂载:允许自定义过滤规则和统计配置
  • 日志持久化:将日志输出到宿主机目录便于分析

4. Dovecot IMAP/POP3 服务 (dovecot-billionmail)

基于 billionmail/dovecot:1.4 镜像提供邮件访问协议支持:

  • 资源限制优化:设置文件描述符和进程数上限
  • 多协议支持:默认开放 IMAP(143)、IMAPS(993)、POP3(110) 和 POPS(995) 端口
  • 安全增强:使用 NET_BIND_SERVICE 能力绑定特权端口
  • 邮件存储:挂载 /var/vmail 目录持久化用户邮件数据

5. Postfix SMTP 服务 (postfix-billionmail)

使用 billionmail/postfix:1.5 镜像作为邮件传输代理:

  • 端口配置:支持 SMTP(25)、SMTPS(465) 和 Submission(587) 端口
  • 数据库集成:通过 PostgreSQL 存储虚拟邮箱和别名信息
  • 安全配置:与 Rspamd 集成实现垃圾邮件过滤

6. Roundcube Webmail (webmail-billionmail)

基于官方 roundcube/roundcubemail:1.6.10-fpm-alpine 镜像:

  • 数据库配置:自动连接 PostgreSQL 数据库
  • 邮件服务集成:预设连接 Dovecot 和 Postfix 服务
  • 配置文件挂载:支持自定义 Web 邮件界面设置

7. 核心管理服务 (core-billionmail)

使用 billionmail/core:3.2.1 镜像提供统一管理界面:

  • 系统监控:通过 Docker API 监控各服务状态
  • 安全防护:集成 Fail2ban 防止暴力攻击
  • Web 服务:提供 80 和 443 端口的 HTTP/HTTPS 访问

网络配置

系统创建专用桥接网络 billionmail-network

  • 自定义子网:默认使用 172.66.1.0/24 网段,可通过 IPV4_NETWORK 环境变量修改
  • 网络别名:每个服务都有简短的网络别名便于内部通信
  • 桥接名称:固定为 br-billionmail 便于识别和管理

部署建议

  1. 环境准备

    • 确保宿主机已安装 Docker 和 Docker Compose
    • 准备足够的磁盘空间用于邮件存储
  2. 配置调整

    • 修改 .env 文件设置数据库凭证和邮件域名
    • 根据实际需求调整各服务端口映射
  3. 安全建议

    • 定期备份 PostgreSQL 数据和邮件存储目录
    • 为 Redis 和数据库设置强密码
    • 考虑配置 TLS 证书增强通信安全
  4. 性能优化

    • 根据邮件量调整 Dovecot 和 Postfix 的资源限制
    • 监控 Redis 内存使用情况

常见问题处理

  1. 服务启动顺序

    • 数据库和 Redis 会首先启动
    • 其他服务通过 depends_on 确保依赖服务就绪
  2. 日志查看

    • 各服务日志分别存储在 ./logs 子目录中
    • 可通过 docker-compose logs 命令查看实时日志
  3. 数据迁移

    • 备份 postgresql-datavmail-data 目录即可保留所有数据
    • 恢复时确保目录权限正确

通过这套 Docker Compose 配置,Billion-Mail 实现了邮件服务各组件的标准化部署和统一管理,大大简化了复杂邮件系统的搭建和维护工作。