系统工具 · 2023年11月1日 0

搭建私有邮箱服务器Poste.io

一、前提

  • 一台系统是centos7的云服务器,至少使用2核4g的机型
  • 一个域名,如果使用境外服务器,则不用备案,国内服务器则先进行域名备案,如 example.com

二、docker环境安装

# 安装docker
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce

mkdir /etc/docker
cat << EOF > /etc/docker/daemon.json
{
    "registry-mirrors":["https://9n4unom9.mirror.aliyuncs.com"],
    "insecure-registries":["registry.docker.datatub.com"],
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "journald",
    "storage-driver": "overlay2"
}
EOF
systemctl enable docker; systemctl start docker

# 官网安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64 " -o /usr/bin/docker-compose && chmod +x /usr/bin/docker-compose

三、安装邮箱服务器Poste.io

Poste.io 利用 Haraku、Dovecot 和其他开源组件等邮件服务器解决方案。从垃圾邮件过滤工具到防病毒引擎。如果您想使用其中一些组件设置开源邮件服务器并能够轻松管理和保护事物,Poste.io 是一个很好的选择。

主要亮点:

  • 使用多个开源邮件服务器组件易于管理和构建
  • 管理面板界面
  • 自带Web客户端
  • 部署方便简单

其他:尝试安装过Mailu(安装过程遇到问题)、EwoMail(收发邮件有问题)

1、编辑 docker-compose.yaml,将 example.com 替换为你自己的域名

services:
  posteio:
    image: analogic/poste.io:2.3.14
    container_name: posteio
    hostname: mail.example.com
    restart: always
    ports:
      - "18443:443"
      - "25:25"    
      - "143:143"  
      - "465:465"  
      - "587:587"  
      - "993:993"  
    volumes:
      - ./data:/data
      - /etc/localtime:/etc/localtime:ro

2、启动服务

# 启动
docker-compose up -d

# 查看状态
docker-compose ps

# 查看日志
docker-compose logs

3、配置dns记录

4、配置邮箱服务,前提是服务正常

  • 访问 https://mail.example.com:18443 ,设置管理员账号密码。此时https还是提示不安全的
  • 通过管理员账号密码登录后台,查看到已绑定域名列表。 https://mail.example.com:18443/admin/login

5、创建dkim密钥

根据dkim值,设置dns记录

至此,邮箱服务器就安装配置完了。后续可以根据自己需要再完善,比如开启邮箱ssl,更新访问nginx证书

6、增强功能:开启SSL,否则不能使用pop/imap功能

打开 系统设置 -> TLS证书 ,直接使用Let’s Encrypt certificate (尝试过只定义证书,但是失败了)。

前提:系统地址必须使用80/443端口,否则证书下发失败,因为下发过程要https验证

四、创建账号,测试收发邮件

1、登录管理后台,创建账号

2、登录web客户端 https://mail.example.com:18443 ,进行收发邮件测试。

参考官方文档

另,如有需要,请添加wx咨询。wx:oneaicat