搭建开源邮局系统 Poste.io 实现自建域名邮箱服务
前言
Poste.io 是开源的邮局系统,集成了 SMTP + IMAP + POP3 + 反垃圾 + 防病毒 + Web 管理 + Web 电子邮件,通过 Docker 几分钟就可以完成部署。在关闭反垃圾和防病毒的情况下,1G 内存的 VPS 就可以完成安装,同时提供了统计分析、一键部署 SSL、Catch-All 等常用功能。
准备工作
在开始之前,还需要做以下准备工作:
- 一个域名
- 一台开放 25 端口的 VPS(最好支持 rDNS)
部分商家 VPS 不支持 25 端口和 rDNS,在购买之前可以搜索一下商家相关帖子;还有部分商家开放端口和设置 rDNS 需要工单申请或者 KYC。没有 VPS 的可以购买搬瓦工的 1C1G,在禁用反垃圾和防病毒的情况下搭建 Poste.io 足够使用了,搬瓦工默认开放了 25 端口,并且可以在后台自助设置 rDNS。
测试 25 端口
在开始之前,需要测试 VPS 的 25 端口是不是开放的,可以通过 telnet 命令测试 telnet smtp.qq.com 25
返回结果像下面这样的就是可以使用的
Trying 240e:ff:f100:1009::120...
Connected to smtp.qq.com.
Escape character is '^]'.
像这样的就不可以使用的
Trying 43.129.255.54...
Connection failed: Connection refused
Trying 240e:ff:f100:1009::120...
telnet: Unable to connect to remote host: Connection refused
rDNS (PTR)
- 一部分支持的商家可以直接在后台进行设置,填上邮箱服务器的域名即可
- 另一部分商家需要发工单让客服设置
- 还有部分商家不支持 rDNS
域名解析
记录 | 类型 | 值 |
---|---|---|
A | VPS IP | |
smtp | CNAME | mail.domain.com |
pop | CNAME | mail.domain.com |
imap | CNAME | mail.domain.com |
@ | MX | mail.domain.com |
@ | TXT | v=spf1 mx ~all |
安装 Poste.io
Poste.io 可以直接通过 Docker 进行部署,由于配置项较多,推荐使用 Docker Compose
- 内存较小的机器,一定要通过
DISABLE_CLAMAV
和DISABLE_RSPAMD
两项配置禁用反垃圾和反病毒 - 安装有 Nginx 的机器,建议通过
HTTP_PORT
和HTTPS_PORT
修改 Web UI端口,后续反向代理访问即可
services:
mailserver:
image: analogic/poste.io
hostname: mail.domain.com
network_mode: host
environment:
- HTTPS=OFF
- DISABLE_CLAMAV=TRUE
- DISABLE_RSPAMD=TRUE
- HTTP_PORT=8080
- HTTPS_PORT=4433
- TZ=Asia/Shanghai
volumes:
- /your-data-dir/data:/data
完成安装后,还需要在防火墙开放这些端口 25,110,143,465,587,993,995,4190
。Web UI 如果通过反向代理访问,则不需要开放端口;反之则需要开放。
配置 Poste.io
- 访问反代的域名或者
http://ip:8080
进入管理面板,首先要设置 hostname 以及管理邮箱
- 点击左侧
System settings
来到TLS certificate
页面,申请 SSL 证书
- 其中域名按照下图格式填写即可
更多优化
由于是自建的邮局,发送的邮件比较容易进垃圾箱,为了降低进垃圾箱的概率,还需要更多的优化。
设置 Hostname
hostnamectl set-hostname mail.domain.com
设置 DKIM
点击 Virtual domains
,创建一个新的 key
然后域名新增一条 TXT 记录的解析,记录为 s2024xxxxxxx._domainkey,值为后面引号内的部分
测试邮件
完成上面设置后,最重要的是测试邮箱的得分,得分越高,邮件越不容易进入垃圾箱,通过 https://www.mail-tester.com/ 可以进行测试
通过 Webmail 或者客户端向页面中的地址发送邮件
点击“查看你的邮件的得分”后,能看到得分以及具体的扣分项,分数较低的,则可以根据下方的提示完善扣分的地方
预览: