介绍
poste.io 邮件服务基于 Docker 搭建,用的是 Haraka + Dovecot + SQLite 邮件系统,能够轻易实现邮件收发、多域名控制、邮箱容量控制、邮件杀毒、邮件过滤以及 Webmail 等基础功能。同时,Poste 还提供了投递统计分析、客户端自动适配、一键安装SSL、邮件转发、邮件别名、Catch-All 等相当有用的功能。
机器配置
2核心+2G内存及以上
弱鸡直接拉满失联!
快速安装
poste.io原生支持docker,占用资源较少,安装简单,适合个人使用。
dns配置
为了能够正常使用邮件服务,需要配置域名的 MX 记录,将邮件服务器的地址指向你的域名。下文以
mail.qiyue.email为例。
注:.email 是域名后缀 和.com 是一样的,有所不同需自行更改
最后还需要到 VPS 服务商处添加一个反向 DNS,也就是 rDNS 解析,把 IP 解析到 mail.your-domain.com 这个邮件域名就好了,这个为可选项,有些 VPS 商家不提供这种服务。

以上 DNS 解析,至少需要添加前面三个 A 解析和 MX 解析,后面几个解析为可选,不添加也能用。
我这里提供两种安装方法
第一种
修改VPS hostname
hostnamectl set-hostname mail.qiyue.email# 修改hosts文件
vim /etc/hosts# 添加一行
127.0.1.1 localhost.localdomain mail.qiyue.email安装docker
# 安装docker
curl -sSL https://get.docker.com/ | sh
# 启动docker
systemctl start docker
# 设置开机启动
systemctl enable docker安装poste.io
用docker compose安装,在要部署poste.io的目录下创建docker-compose.yml文件
version: '3.7'
services:
mailserver:
image: analogic/poste.io
hostname: mail.qiyue.email
ports:
- "25:25"
- "110:110"
- "143:143"
- "587:587"
- "993:993"
- "995:995"
- "4190:4190"
- "465:465"
- "8808:80"
- "8843:443"
environment:
- LETSENCRYPT_EMAIL=admin@qiyue.email
- LETSENCRYPT_HOST=mail.qiyue.email
- VIRTUAL_HOST=mail.qiyue.email
- DISABLE_CLAMAV=TRUE
- TZ=Asia/Shanghai
- HTTPS=OFF
volumes:
- /etc/localtime:/etc/localtime:ro
- ./mail-data:/data请注意修改里面的域名和存储路径。
禁用反病毒功能(DISABLE_CLAMAV=TRUE)、禁用反垃圾邮件功能(DISABLE_RSPAMD=TRUE),可以大幅减低内存和CPU占用,请酌情设置禁用选项。
禁用WEB收发功能(DISABLE_ROUNDCUBE=TRUE),可以进一步减少资源占用,不过非必要不建议禁止。
8808为http端口,可以根据自己的需求修改。
# 启动poste.io
docker-compose up -d配置NGINX反向代理
upstream poste_backend {
server 127.0.0.1:8808;
}
server {
listen 80;
listen 443 ssl http2;
server_name mail.qiyue.email;
ssl_certificate /etc/nginx/conf.d/ssl/cert.pem;
ssl_certificate_key /etc/nginx/conf.d/ssl/key.pem;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
access_log /var/log/nginx/mail.log main;
location ^~ /.well-known {
proxy_pass http://poste_backend;
}
location / {
proxy_pass http://poste_backend;
proxy_set_header Host $host;
proxy_intercept_errors off;
# real-ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
# websocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_read_timeout 86400;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
if ($server_port = 80 ) {
return 301 https://$host$request_uri;
}
}
配置poste.io
通过浏览器访问https://mail.qiyue.email,进入poste.io的配置页面,按照提示进行配置即可。
1、设置管理员账户以及密码,然后进入后台管理页面。

配置 Let’s Encrypt 证书。


创建 dkim 密钥,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 s20160910378.domainkey.qiyue.email
左侧点击 Virtual domains 然后点击域名进行配置。
点击 DKIM keys,然后点击 Generate new key,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 s20160910378.dom_

配置邮件客户端
第三方客户端
SMTP/IMAP/POP3配置
参考:https://www.tryxd.cn/2023/08/22/posteio-mail/index.html
第二种
参考:科技lion 官方博客 的脚本一键教程
视频教程 https://www.youtube.com/watch?v=1Jr8MTNt4yE&t=385s
使用方法
Debian/Ubuntu安装下载工具
apt update -y && apt install -y curl
CentOS安装下载工具
yum update && yum install curl
官网版一键脚本
curl -sS -O https://kejilion.pro/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh
GitHub版一键脚本 部分小伙伴会遇到官网版出现大段乱码!就用GitHub版本吧!
curl -sS -O https://raw.githubusercontent.com/kejilion/sh/main/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh
脚本主界面
脚本全面支持Ubuntu、Debian和Cent OS系统
只要执行命令自动获取最新版本
进来后依次选择 11 9 (脚本更新了,进去后看界面选择对应即可)


进来后可以看到 25端口是否可用 可用选择Y

不可用换VPS,不然安装后没有意义,无法使用

按Y后来到

这里输入你的域名 列如我的 mail.qiyue.email
注意,这里的前缀必须带mail
输入后按回车来到

这里要来到你的域名NS所在的网站 这里用 cloudflare 做演示 其他平台同上即可

审查后回到SSH终端 确认无问题后按任意键继续

现在就开始自动安装了,如果这里没有装Docker 这里会自动安装
等待安装完成后

点击这里的链接会来到

不必管这里的不安全链接,因为SSL证书没有安装,直接打开即可

Mailserver hostname 保持即可
Administrator email (email address managed by mailserver) 这里加admin@你的域名即可
Password 这里填写一个你能记住的密码
进来后来到主页
选择 Email accounts

这里步骤省略,自行探索即可
接下来如何颁发免费证书
来到系统设置

选择TLS证书

选择颁发/更改新的证书

用你当下的域名直接保存申请即可
下滑来到日志,看到这个标志就是颁发成功
再次回到上面保存后,重新加载网页即可看到证书生效,从http 变成了https 加密了

现在选择虚拟域

点击进来

点击create a new key

复制这一串代码

这里来到 cloudflare 添加TXT解析记录 粘贴到这里

回到域名邮箱
引号里这一串复制,粘贴到 cloudflare 保存

这样cloudflare 的解析就完成了,这一步是让你的邮箱更加受信任。
教程来自于
https://kejilion.blogspot.com/2023/08/lionldnmp.html
https://www.tryxd.cn/2023/08/22/posteio-mail/index.html
https://www.youtube.com/watch?v=1Jr8MTNt4yE&t=385s
再次感谢大佬们的付出