Poste.io搭建邮箱邮局服务

2024-09-03  本文已影响0人  一剑无血冯稀饭

介绍

poste.io 邮件服务基于 Docker 搭建,用的是 Haraka + Dovecot + SQLite 邮件系统,能够轻易实现邮件收发、多域名控制、邮箱容量控制、邮件杀毒、邮件过滤以及 Webmail 等基础功能。同时,Poste 还提供了投递统计分析、客户端自动适配、一键安装SSL、邮件转发、邮件别名、Catch-All 等相当有用的功能。

全文使用your-domain.com和/home/postemail为域名和文件位置,注意替换。

dns配置

为了能够正常使用邮件服务,需要配置域名的 MX 记录,将邮件服务器的地址指向你的域名。下文以mail.your-domain.com为例。

记录类型 主机记录 记录值
MX @.your-domain.com mail.your-domain.com
TXT @.your-domain.com v=spf1 mx ~all
A mail a.b.c.d (your ip)
TXT _dmarc v=DMARC1; p=none; pct=100; rua=mailto:mail@your-domain.com
CNAME imap mail.your-domain.com
CNAME smtp mail.your-domain.com
CNAME pop mail.your-domain.com
TXT _s20160910378._domainkey.your-domain.com k=rsa;p=MII………

新建yaml文件

docker一键配置脚本, 注意修改80端口的映射, 邮箱的地址, 以及文件配置存储的位置

services:
  mailserver:
    image: analogic/poste.io
    hostname: your-domain.com
    ports:
      - "25:25"
      - "110:110"
      - "143:143"
      - "587:587"
      - "993:993"
      - "995:995"
      - "4190:4190"
      - "465:465"
      - "8064:80"
      - "8843:443"
    environment:
      - LETSENCRYPT_EMAIL=admin@your-domain.com
      - LETSENCRYPT_HOST=mail.your-domain.com
      - VIRTUAL_HOST=mail.your-domain.com
      - DISABLE_CLAMAV=TRUE
      - TZ=Asia/Shanghai
      - HTTPS=OFF
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /home/postemail:/data

配置nginx反向代理

注意修改端口, 证书可以先使用自己申请的免费的

# mail
  server {
    listen 443 ssl;
    server_name mail.your-domain.com;
    ssl_certificate /www/server/nginx/cert/mail/*.pem;
    ssl_certificate_key /www/server/nginx/cert/mail/*.key;
    # ssl
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:40m;
    ssl_session_timeout 5m;
    ssl_session_tickets off;

    # OCSP stapling
    ssl_stapling on;
    ssl_stapling_verify on;

    add_header Strict-Transport-Security "max-age=63072000";

    location / {
      proxy_pass http://a.b.c.d:8064;
    }
  }
  server {
    server_name mail.your-domain.com;
    listen 80;
    # rewrite ^(.*) https://$host$1 permanent;

    location / {
      proxy_pass http://a.b.c.d:8064;
    }
  }

运行服务

docker compose -p postemail up -d

配置poste.io

通过浏览器访问https://mail.your-domain.com,进入poste.io的配置页面,按照提示进行配置即可。

1.1 访问 Virtual domains -> 点击域名 -> DKIM key -> 点击 regenerate key -> 将生成的in txt后面的引号里的内容按照上面的表填写到dns解析中, 不含引号
微信截图_20240904093056.png
1.2 访问 System settings -> TLS Certificate -> Change certificate settings, 按照以下输入
微信截图_20240904091123.png
1.3 点击save changes获取证书, 等待显示以下内容, 证书获取成功, 即可设置其它
LEScript.INFO: Done !!§§!

设置安全性, 如果不需兼容旧的非加密的程序或邮件客户端, 可以跳过

1.1 停止服务
docker compose down
1.2 修改/home/postemail/server.ini文件
brand_name = "xxxx" #此处可以修改部分页面显示名称
auth_required = 0 #此处默认为1,修改为0,客户端不强制检查ssl
1.3 启动服务
docker compose -p postemail up -d

设置nginx证书

将nginx配置改为/home/postemail/ssl/letsencrypt/mail.your-domain.com/目录, 如下

ssl_certificate /home/postemail/ssl/letsencrypt/mail.your-domain.com/fullchain.pem;
ssl_certificate_key /home/postemail/ssl/letsencrypt/mail.your-domain.com/private.pem;

最后的设置

1.1 打开网站,访问 Server status -> Connection diagnostics
微信截图_20240904094151.png
1.2 邮箱相关端口全绿即可,可以正常使用邮箱服务了
上一篇 下一篇

猜你喜欢

热点阅读