文章

ipv6邮件服务器 Poste邮件服务器搭建 docker compose

邮件服务器是我们日常工作和沟通不可或缺的一部分。Poste.io是一个简单易用的邮件服务器解决方案,它基于Docker容器技术,提供了快速搭建并管理邮件服务器的能力。

Poste与ipv6

网上的教程多为docker run命令,对于有一些自定义的配置修改起来非常的不方便,尤其是对于ipv6有需求的朋友,原来的方法在docker run下 ipv6网络大概会出现问题,这里我参考官方的Docker network进行配置的docker-compose.yml,有兴趣的可以去研究研究,挺有意思的。

为了同时支持ipv4与ipv6,官方建议采用Recommended: dedicated server for poste.io only (network=host) 模式,此模式为占用服务器的80、443端口,对于正常使用的服务器来说不可能只运行一个邮件服务器,故舍弃。

同时支持ipv4与ipv6还有一种模式Reverse proxy, poste.io, other web containers and network=host (when you run other HTTP services at same server),此模式不需要占用80、443端口,但是需要自己配置一下反向代理,所以这里选择这一种模式进行配置。

默认你已经安装好docker,配置中需要一个域名,申请好的证书,关于如何申请证书可以参考我的这篇文章,下面为配置过程。

docker compose配置文件

以下为建立的过程命令:

mkdir poste
cd poste
vi docker-compose.yml

编辑docker-compose.yml配置文件:

version: '3'

services:
  mailserver:
    image: analogic/poste.io
    container_name: mailserver
    restart: always
    network_mode: "host"
    ports:
      - "25:25"
      - "110:110"
      - "143:143"
      - "587:587"
      - "993:993"
      - "995:995"
      - "4190:4190"
      - "465:465"
    environment:
      - VIRTUAL_HOST=mail.你的域名
      #- HTTPS=OFF
      - HTTP_PORT=5080
      - HTTPS_PORT=5443
      - TZ=Asia/Shanghai
      - DISABLE_CLAMAV=FALSE
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /data/mail-data:/data   
      - 你的证书路径.key:/data/ssl/server.key:ro
      - 你的证书路径.cer:/data/ssl/ca.crt:ro
      - 你的证书路径.cer:/data/ssl/server.crt:ro

在上面的配置文件中需要注意VIRTUAL_HOST参数为你的邮件域名,你申请的证书路径(poste自带证书申请,但是我申请多次都以失败告终,这里是外部手动申请的证书文件),DISABLE_CLAMAV参数为关闭杀毒,服务器内存不够的话建议打开。

安装poste

以上我们得到一个docker-compose.yml文件,执行以下命令安装启动:

docker compose up -d

DNS配置

以我在华为云的DNS配置,需要注意替换成自己的域名:

域名

记录类型

记录值

你的域名

TXT

"v=spf1 mx a ~all"

smtp.你的域名

CNAME

mail.你的域名

imap.你的域名

CNAME

mail.你的域名

pop.你的域名

CNAME

mail.你的域名

mail.你的域名

AAAA

你的IPV6地址

s_xxx后面配置会有._domainkey.你的域名

TXT

s_xxx后面配置会有

你的域名

MX

10 mail.你的域名

mail.你的域名

A

兼容IPV4地址

mx.你的域名

AAAA

你的IPV6地址,做后台访问

配置好后访问 mx.你的域名:5443 就是你的poste管理后台根据提示完成初始化配置。

管理后台配置

进入管理后台后,设置你的域名:

点击regenrate key:

这个就是上面DNS设置中还需要用到的参数,把这个填上去就好了。

账户设置

按照提示创建账户发送邮件吧!

License:  CC BY 4.0