一、项目简介
Poste.io 是一个基于 Docker 的一体化邮件服务器解决方案,将 Postfix、Dovecot、SOGo WebMail、SpamAssassin、ClamAV 等核心组件全部打包进单一容器,无需繁琐配置,开箱即用。适合个人、小团队或企业快速搭建自托管邮件服务。
单容器部署,无需额外安装 IMAP / POP3 服务器,一条 Docker 命令即可启动完整邮件服务。
二、内置组件
| 组件 |
版本 / 类型 |
功能说明 |
| Postfix |
MTA |
SMTP 邮件发送与中继 |
| Dovecot |
IMAP/POP3 |
客户端收信协议服务 |
| SOGo |
WebMail |
网页版邮箱 + 日历 + 通讯录 |
| SpamAssassin |
反垃圾 |
邮件评分过滤 |
| ClamAV |
杀毒 |
邮件病毒扫描 |
| Rspamd |
过滤器 |
高性能邮件过滤 |
| Let's Encrypt |
SSL |
自动申请续期证书 |
三、核心功能介绍
3.1 邮件收发
- SMTP(25 / 587 端口):接收外部邮件、支持客户端认证发信
- IMAP(993 端口):邮件实时同步,多设备共享邮箱状态
- POP3(995 端口):传统收信协议,下载到本地
- 多域名支持:可同时托管多个域名的邮箱(免费版限 2 个)
别名与转发:设置邮件别名、转发规则、通讯组列表自动回复:Out-of-office 假期自动回复 3.2 安全特性 TLS/SSL:自动申请 Let's Encrypt 证书,全程加密传输 SMTP AUTH:用户名密码认证,防止开放中继 SPF / DKIM / DMARC:防伪造域名,提升投递可信度 SpamAssassin:评分式垃圾邮件过滤 ClamAV:实时病毒扫描,拦截恶意附件暴力破解防护:登录失败限流,自动封禁 IP3.3 Web 界面 SOGo Webmail:功能完整的网页邮箱客户端管理后台:可视化管理域名、邮箱账户、别名、黑白名单日历(CalDAV):支持 iOS/Android/Outlook 日历同步通讯录(CardDAV):联系人跨设备同步 ActiveSync:移动设备邮件推送同步(付费功能)3.4 监控与日志实时邮件队列状态监控收发日志查询(含发件时间、目标服务器、结果状态)流量统计报表(日/周/月)磁盘/队列异常告警通知
四、快速搭建(Docker 部署)
4.1 前置要求
- 已安装 Docker(版本 >= 20.x)
- 服务器拥有公网 IP
- 域名已解析 MX 记录指向该服务器
- 开放端口:25、80、443、587、993、995、4190
4.2 最小化部署(HTTP 模式)
docker run -d \ --name=mailserver \ -p 25:25 \ -p 587:587 \ -p 993:993 \ -p 995:995 \ -p 80:80 \ -v /opt/mailserver:/data \ -e "HTTPS=OFF" \ analogic/poste.io
|
4.3 完整部署(HTTPS + 自动证书)
docker run -d \ --name=mailserver \ --restart=always \ -p 25:25 \ -p 80:80 \ -p 443:443 \ -p 587:587 \ -p 993:993 \ -p 995:995 \ -p 4190:4190 \ -h mail.example.com \ -e "HTTPS=AUTO" \ -v /opt/mailserver:/data \ analogic/poste.io
|
说明:-h mail.example.com 设置容器主机名,必须与 MX 记录指向的域名一致,否则 SSL 证书申请会失败。
4.4 使用 docker-compose 部署
version: "3" services: mailserver: image: analogic/poste.io container_name: mailserver restart: always hostname: mail.example.com environment: - HTTPS=AUTO ports: - "25:25" - "80:80" - "443:443" - "587:587" - "993:993" - "995:995" - "4190:4190" volumes: - /opt/mailserver:/data
|
五、配置方式
5.1 环境变量说明
| 变量名 |
默认值 |
说明 |
| HTTPS |
AUTO |
SSL 模式:AUTO(自动 Let's Encrypt)/ OFF(禁用)/ CUSTOM(自定义证书) |
| DISABLE_CLAMAV |
false |
设为 true 可禁用 ClamAV 节省内存(至少需要 2GB RAM) |
| DISABLE_RSPAMD |
false |
设为 true 可禁用 Rspamd |
| SMTP_ONLY |
false |
设为 true 仅启动 SMTP,适合邮件中继场景 |
| ADMIN_ALIAS |
admin |
管理员邮箱别名前缀 |
5.2 管理后台配置步骤
- 浏览器访问
https://mail.example.com/admin
- 使用初始账号
admin@your-server-hostname 登录(首次登录设置密码)
- 进入 Virtual Domains → 添加你的邮件域名(如
example.com)
- 进入 Email Accounts → 创建邮箱账户
- 进入 Email Aliases → 配置别名和转发规则
- 进入 TLS Settings → 验证 SSL 证书状态
5.3 端口说明
| 端口 |
协议 |
用途 |
| 25 |
SMTP |
接收外部服务器邮件(必须对外开放) |
| 80 |
HTTP |
Let's Encrypt 证书申请验证 |
| 443 |
HTTPS |
Web 管理界面 + SOGo Webmail |
| 587 |
SMTP Submission |
客户端认证发件(Outlook / Thunderbird) |
| 993 |
IMAPS |
加密收件(推荐客户端使用) |
| 995 |
POP3S |
加密 POP3 收件 |
| 4190 |
ManageSieve |
Sieve 邮件过滤脚本管理 |
六、DNS 配置
DNS 配置是邮件服务器正常运转的关键,缺少以下记录会导致邮件被拒收或标记为垃圾邮件。
6.1 必须配置的 DNS 记录
mail.example.com. IN A 123.45.67.89
example.com. IN MX 10 mail.example.com.
example.com. IN TXT "v=spf1 mx ~all"
89.67.45.123.in-addr.arpa. IN PTR mail.example.com.
|
6.2 DKIM 配置(强烈推荐)
DKIM 记录可在 Poste.io 管理后台自动生成:
- 登录管理后台 → Virtual Domains → 选择域名
- 点击 DKIM Keys → 生成新密钥
- 将界面显示的 TXT 记录值添加到 DNS
s20240101._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."
|
6.3 DMARC 配置(推荐)
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
|
** 重要提示:**25 端口在大多数国内云服务商默认封锁,需要提交工单申请解封。若使用腾讯云 / 阿里云,建议先确认 25 端口策略。
七、免费版 vs 付费版对比
| 功能 |
免费版 |
付费版 |
| 域名数量 |
最多 2 个 |
无限制 |
| 邮箱数量 |
无限制 |
无限制 |
| ActiveSync |
❌ |
✅ |
| 全文搜索 |
❌ |
✅ |
| 高级反垃圾配置 |
❌ |
✅ |
| 技术支持 |
社区 |
官方 |
八、注意事项
- 内存要求:推荐至少 2GB RAM(ClamAV 单独占用约 500MB);资源有限时设 DISABLE_CLAMAV = true
- 反向 DNS:公网 IP 需配置 PTR 记录(rDNS),否则邮件极易被 Gmail / Outlook 拒绝
- 25 端口:国内云厂商(阿里云、腾讯云等)默认封锁,需提交工单申请开放
- 数据备份:所有数据存储在 /data 目录,定期备份该目录即可
- 版本更新:执行
docker pull analogic/poste.io + 重启容器即可升级
- IP 信誉:新 IP 发出的邮件初期可能被误判,建议通过 mail-tester.com 检测评分