
一、简介
- Poste.io 是一个易于安装和配置的私有邮件服务器解决方案
- 提供了 PRO 和 FREE 两种版本,即使是 FREE 版本也拥有完整的邮件收发功能和 Web UI 管理页面
- 提供官方 Docker 镜像,一条 Docker 命令即可快速启动,无需复杂的组件和配置
- 官方使用文档可参考:https://poste.io/doc/

二、安装与使用
第一步:拥有一个自己的域名,并且设置好dns解析
假设域名为:123456.xyz ,可以托管到cloudflare,或者其他dns管理平台,需要进入DNS解析页面,设置如下几个配置,最后一个需要系统安装完成进入后台配置 DKIM 后才能设置
| 主机记录 | 记录类型 | 记录值 |
| mail | A | 服务器IP,如:1.2.3.4 |
| smtp | CNAME | mail.123456.xyz |
| pop | CNAME | mail.123456.xyz |
| imap | CNAME | mail.123456.xyz |
| @ | MX | mail.123456.xyz |
| @ | TXT | v=spf1 mx all |
| 最后再添加,需要进入后台获取 | TXT | 最后再添加,需要进入后台获取 |
第二步:准备一台2G内存以上的服务器,开放端口、docker环境
1. 开放端口
下图端口都有具体对应的功能,都应该开放防火墙,允许外部网络访问

2. 检测端口可用性
注意,很多服务上提供的主机都不能使用25端口,需要检测下是否支持
先安装telnet工具
//如果没有telnet命令,需要安装
apt install -y telnet
//或者
yum install -y telnet
测试服务器是否可以连接其他服务器的25端口
//如下图,连接上会显示Connected to smtp.qq.com,输入quit回车退出
//链接不上会导致“发送邮件”不能使用
telnet smtp.qq.com 25

测试服务器的25端口是否可以被外部访问
//使用python在25端口开启一个http服务,如下
python3 -m http.server 25
//然后访问http://主机ip:25 , 如果可以访问,则证明25端口可用,否则无法“接收邮件”
//注意国内主机服务器大多不提供25端口的访问权限,可以购买海外服务器,购买前需要确定服务器厂商是否开放25端口(否则买了也没用)
3. 使用Docker快速安装启动Poste.io服务
新建docker-compose.yml配置文件,配置内容如下
version: '3'
services:
mailserver:
container_name: mailserver
hostname: mail.123456.xyz
image: analogic/poste.io
network_mode: host
restart: always
environment:
- TZ=Asia/Shanghai
- HTTP_PORT=80 #一定要80端口可以访问,因为 poste.io 系统内容自动申请 Let's Encrypt 证书时需要用到
- HTTPS_PORT=443
volumes:
- ./data:/data
配置完,一键启动即可
docker-compose up -d
第三步:访问邮箱后台,申请证书、配置DKIM
1. 初始化管理员账号,登录后台
Poste.io 服务启动之后,可访问:https://域名/,默认是使用自签证书的,先初始化管理员账号,登入系统

2. 进入系统设置页,申请 Let's Encrypt 证书


3. 配置 DKIM,提高邮件可信度(否则可能会进入垃圾邮件)
如下所示,生成 DKIM key,并且去域名的 DNS 解析这最后一个TXT记录。注意:这个 DKIM 的dns记录设置后,可能有缓存,如果发信异常,不要着急,可以等一会再尝试下

第四步:收发邮件测试
管理收发邮件账户

通过Poste.io的网页在线发送接收邮件测试

通过代码发送邮件示例参考
//SMTP服务器地址:mail.123456.xyz 或 smtp.123456.xyz
//SMTP账号/发件邮箱:admin@123456.xyz等
//SMTP密码(登录密码):123456xxx等
//SMTP端口号:465、587、25
//测试代码如下
$email = new EmailTool('smtp.123456.xyz', 'admin@123456.xyz', '123456xxx', 465);
$email->sendEmail(['123456@qq.com',], '测试邮件', '您好,测试!', '测试');
三、总结
- 使用 Poste.io 可以让你非常轻松就能部署一个自己的域名邮箱系统
- 部署很简单,Docker一键启动,但是需要你具备一个域名,和一台25端口可用且2GB内存以上的公网服务器
- 搭建成功即可拥有N多的邮箱账号和无限的邮件收发能力,可个人使用,也可以在生产环境使用