介绍
Poste.io 邮件服务基于 Docker 搭建,用的是 Haraka + Dovecot + SQLite 邮件系统,能够轻易实现邮件收发、多域名控制、邮箱容量控制、邮件杀毒、邮件过滤以及 Webmail 等基础功能。同时,Poste 还提供了投递统计分析、客户端自动适配、一键安装SSL、邮件转发、邮件别名、Catch-All 等相当有用的功能。
快速安装
Poste.io原生支持docker,占用资源较少,安装简单,适合个人使用。
Dns配置
本文以Debian为例
为了能够正常使用邮件服务,需要配置域名的 MX 记录,将邮件服务器的地址指向你的域名。下文以mail.your-domain.com
为例。
记录类型 | 主机记录 | 记录值 |
A | 1.2.3.4 (your ip) | |
MX | your-domain.com | mail.your-domain.com #优先级10 |
TXT | your-domain.com | v=spf1 mx ~all |
TXT | _dmarc | v=DMARC1; p=none; pct=100; rua=mailto:admin@your-domain.com |
CNAME | imap | |
CNAME | smtp | |
CNAME | pop | |
TXT | _s20160910378._domainkey.your-domain.com #全部配置完成,去后台Virtual domains,生成DKIM key再填入 | k=rsa;p=MII……… #全部配置完成,去后台Virtual domains,生成DKIM key再填入 |
1.2.3.4
的 PTR 记录为 mail.your-domain.com
提高邮件到达率。修改VPS hostname
hostnamectl set-hostname mail.your-domain.com
# 修改hosts文件
vi /etc/hosts
# 添加一行
127.0.1.1 localhost.localdomain mail.your-domain.com
使用官方源安装 Docker
以下操作需要在 root 用户下完成,请使用 sudo -i
或 su root
切换到 root
用户进行操作。
首先,安装一些必要的软件包:
apt update -y
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates -y
然后加入 Docker 的 GPG 公钥和 apt 源:
curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
然后更新系统后即可安装 Docker CE:
apt update -y
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
此时可以使用 docker version
命令检查是否安装成功:
root@debian ~ # docker version
Client: Docker Engine - Community
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:52:17 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.2
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 659604f
Built: Thu May 25 21:52:17 2023
OS/Arch: linux/amd64
Experimental: true
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
安装 Docker Compose
因为我们已经安装了 docker-compose-plugin
,所以 Docker 目前已经自带 docker compose
命令,基本上可以替代 docker-compose
:
root@debian ~ # docker compose version
Docker Compose version v2.18.1
如果某些镜像或命令不兼容,则我们还可以单独安装 Docker Compose:
我们可以使用 Docker 官方发布的 Github 直接安装最新版本:
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
此时可以使用 docker-compose version
命令检查是否安装成功:
root@debian ~ # docker-compose version
Docker Compose version v2.18.1
修改 Docker 配置
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训):
cat > /etc/docker/daemon.json << EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF
然后重启 Docker 服务:
systemctl restart docker
好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件,限于篇幅,我们不再赘述,今后慢慢介绍安装各种 Docker 软件的方法。
安装Poste.io
用docker compose安装,在要部署poste.io
的目录下创建docker-compose.yml文件
version: '3.7'
services:
mailserver:
image: analogic/poste.io
hostname: mail.your-domain.com
environment:
- LETSENCRYPT_EMAIL=admin@your-domain.com
- LETSENCRYPT_HOST=mail.your-domain.com
- VIRTUAL_HOST=mail.your-domain.com
- DISABLE_CLAMAV=TRUE
- DISABLE_RSPAMD=TRUE
- TZ=Asia/Shanghai
- HTTPS=ON
volumes:
- /etc/localtime:/etc/localtime:ro
- ./mail-data:/data
network_mode: "host"
restart: always
服务 | 端口 | 说明 |
SMTP | 25 | SMTP 服务端口 |
IMAP | 143 | IMAP 服务端口 |
POP3 | 110 | POP3 服务端口 |
SMTPS | 465 | SMTPS 服务端口 |
IMAPS | 993 | IMAPS 服务端口 |
POP3S | 995 | POP3S 服务端口 |
MSA | 587 | SMTP 端口主要由电子邮件客户端在 STARTTLS 和身份验证之后使用 |
Sieve | 4190 | 远程筛子设置 |
Webmail | 80 | Webmail 服务端口 |
Webmail | 443 | Webmail 服务端口 |
- 请注意修改里面的域名和存储路径。
- 禁用反病毒功能(
DISABLE_CLAMAV=TRUE
)、禁用反垃圾邮件功能(DISABLE_RSPAMD=TRUE
),可以大幅减低内存和CPU占用,请酌情设置禁用选项。 - 禁用WEB收发功能(
DISABLE_ROUNDCUBE=TRUE
),可以进一步减少资源占用,不过非必要不建议禁止。 80
为http
端口,可以根据自己的需求修改。(默认开启https支持,如不需要可以修改docker-compose.yml
文件)
启动Poste.io
docker-compose up -d
停止/删除Poste.io
docker-compose down
配置Poste.io
通过浏览器访问https://mail.your-domain.com
,进入Poste.io的配置页面,按照提示进行配置即可。
配置邮件客户端
协议 | 服务器地址 | 端口 | SSL |
SMTP | mail.your-domain.com,smtp.your-domain.com | 25, 465, 587 | STARTTLS |
IMAP | mail.your-domain.com,imap.your-domain.com | 993, 143 | STARTTLS |
POP3 | mail.your-domain.com,pop.your-domain.com | 995, 110 | STARTTLS |
参考:https://www.nodeseek.com/post-20417-1/,https://u.sb/debian-install-docker/