目 录CONTENT

文章目录

用Docker搭建邮局系统poste.io

yyzq
2025-03-15 / 0 评论 / 1 点赞 / 45 阅读 / 2,114 字

前言

之前给大家用宝塔的方式搭建过邮局系统,有兴趣的可以查看之前的教程自建邮局,今天我们使用开源项目poste.io用Docker的方式搭建邮局系统。
image-1742013617516
SMTP + IMAP + POP3 + 反垃圾邮件 + 防病毒
Web 管理 + Web 电子邮件
web界面展示
image-1742018043407
poste.io这个是有收费项目我们使用免费的完全够用

poste.io主要功能

特性 说明
1.易于安装和配置 Poste.io 提供了一个简化的安装和配置过程,使用户能够快速设置和启动邮件服务器。
2.Web 用户界面 提供了一个直观的 Web 用户界面,使用户能够轻松管理邮件服务器、创建和管理邮箱账户、设置域名等。
3.邮箱功能 支持标准的电子邮件功能,包括收发邮件、邮件夹管理、邮件搜索、自动转发、自动回复等。
4.安全性 使用各种安全措施来保护电子邮件和服务器,包括加密通信、防垃圾邮件过滤、反病毒扫描等。
5.邮件过滤和规则 可以设置邮件过滤器和规则,根据自定义条件自动处理邮件,例如将特定类型的邮件自动分类到特定文件夹。
6.多域名支持 允许管理多个域名和相关的邮箱账户,方便为不同组织或团队创建和管理独立的邮箱。

准备条件

1)一台服务器

我们使用莱卡云VPS安装centos7系统来演示
安装一些依赖

yum -y install vim telnet  #如果有的可以不用安装

这台服务器需要满足

1.1开通25号端口

可以使用以下命令测试下

telnet smtp.qq.com 25

image-1742013749883
如果出现以上这个字样,那么恭喜你此服务器可以正常安装
这是出网代表你可以给别人发邮件
image-1742014023217
如果是这样那么此服务器没有开通出网25端口-无法给别人发邮件
无法安装邮箱服务-或者你找vps供应商开通(很多vps厂商不给开通)

当然为了收邮件
还需要别人可以访问你的这些端口
image-1742031299529
自行开通服务器的端口

需要开通的端口 说明 网络协议
80 HTTP 服务端口 TCP
443 HTTPS 服务端口 TCP
25 SMTP 未加密(用于发送邮件) TCP
587 SMTP STARTTLS(安全的 SMTP 发送邮件) TCP
993 IMAPS(IMAP 安全协议) TCP
110 POP3(普通的 POP3) TCP
995 POP3S(POP3 安全协议) TCP
143 IMAP 未加密(如果支持普通 IMAP) TCP
465 SMTPS(SMTP 安全加密协议) TCP
4190 映射管理邮件过滤(管理 web 邮件过滤和自定义规则)端口 TCP

1.2服务器配置

最好是
4C4G的
2C2G的可能会有点卡
单个此邮箱容器占用了我2G内存内存利用率55%

docker stats mailserver

image-1742017428600
磁盘空间大小最低20G(根据自己的需求)

如果需要能开通25端口vps的可以看以下信息
莱卡云官网
建议选择韩国的CN2服务器

2)本项目官方网站

更多信息请参考官网网站
https://poste.io/

3)域名(必须)

可以自己购买一个域名,或者使用免费的域名
本教程演示使用域名如下

ywsj.cf

域名需要做一些映射
假如我的vps公网ip是

61.111.251.88
主机名 记录类型 备注
mail A 61.111.251.88 邮件服务器的 IP 地址
smtp CNAME mail.ywsj.cf 指向邮件服务器
pop CNAME mail.ywsj.cf 指向邮件服务器
imap CNAME mail.ywsj.cf 指向邮件服务器
@ MX mail.ywsj.cf 邮件交换服务器
@ TXT v=spf1 mx ~all SPF 记录,防止垃圾邮件

还有一个txt后面在说

我使用cloudflare做的映射如下
image-1742031385120

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

推荐直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、创建docker-compose.yml文件

mkdir mail;cd mail #创建一个目录,并进入此目录
vim docker-compose.yml
services:  # 定义服务
  mailserver:  # 服务名称为 mailserver
    image: analogic/poste.io  # 使用的 Docker 镜像
    container_name: mailserver  # 容器名称为 mailserver
    hostname: mail.ywsj.cf  # 容器的主机名设置为自己的域名,比如 mail.ywsj.cf
    environment:  # 设置环境变量
      - TZ=Asia/Shanghai  # 设置时区为上海
    volumes:  # 设置卷(挂载目录)
      - ./mail/data:/data  # 将当前目录下的 ./mail/data 目录挂载到容器的 /data 目录
    ports:  # 设置端口映射
      - "80:80"    # 映射 HTTP 服务端口
      - "443:443"  # 映射 HTTPS 服务端口
      - "25:25"    # 映射 SMTP 未加密端口(用于发送邮件)
      - "587:587"  # 映射 SMTP STARTTLS 服务端口(安全的 SMTP 发送邮件)
      - "993:993"  # 映射 IMAPS 服务端口(IMAP 安全协议)
      - "110:110"  # 映射 POP3 服务端口(普通的 POP3)
      - "995:995"  # 映射 POP3S 服务端口(POP3 安全协议)
      - "143:143"  # 映射 IMAP 未加密端口(如果支持普通 IMAP)
      - "465:465"  # 映射 SMTPS 服务端口(SMTP 安全加密协议)
      - "4190:4190"  # 映射管理邮件过滤(管理 web 邮件过滤和自定义规则)端口
    restart: always  # 容器自动重启策略设置为 always(始终重启)

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否开启成功

正常启动如下所示

 docker-compose ps
NAME         IMAGE               COMMAND   SERVICE      CREATED              STATUS                            PORTS
mailserver   analogic/poste.io   "/init"   mailserver   About a minute ago   Up 5 seconds (health: starting)   0.0.0.0:25->25/tcp, [::]:25->25/tcp, 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:110->110/tcp, [::]:110->110/tcp, 0.0.0.0:143->143/tcp, [::]:143->143/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:465->465/tcp, [::]:465->465/tcp, 0.0.0.0:587->587/tcp, [::]:587->587/tcp, 0.0.0.0:993->993/tcp, [::]:993->993/tcp, 0.0.0.0:995->995/tcp, [::]:995->995/tcp, 4190/tcp

四、打开web页面使用

成功以后需要打开以下链接就可以web端访问了

https://你的ip/admin/install/server

比如我的是
https://61.111.251.88/admin/install/server
注意暂时无法使用域名打开,需要配置证书以后才能使用域名

4.1配置管理员用户和密码

image-1742017258595
根据图示设置好邮箱管理员用户和密码

4.2邮局(邮件服务器)申请和配置 DKIM

这里就需要再添加一个txt记录
image-1742018482831
点进申请
image-1742018516015
image-1742018636901
然后在cloudflare中新增一个txt的record
image-1742031517911

4.3申请免费的证书

image-1742017565938
按图申请即可
image-1742029553955
申请tls证书成功
image-1742017676101

4.4用域名登录

现在我们就可以使用域名登录了
https://mail.ywsj.cf/admin/install/server
image-1742017770662
点击这个可以检查状态是否正常
https://mail.ywsj.cf/admin/server/connection
image-1742027886622

4.4.1创建新邮箱

image-1742017968447
https://mail.ywsj.cf/webmail/
默认中文界面
image-1742018193363

4.5邮件测试

4.5.1发邮件

给gmail邮箱发邮件-gmail收到了
image-1742028037485

4.5.2收邮件

gmail邮箱回复邮件-收到了
image-1742028155326

4.6测试垃圾邮件匹配度

https://www.mail-tester.com/?lang=zh
给指定邮箱发邮件
image-1742018737561
我的得分
image-1742018810115

五、数据持久化

如果需要更换服务器直接备份这个目录即可

tar -zcf mail.tar.gz mail  docker-compose.yml

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

1

评论区