介绍

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

机器配置

2核心+2G内存及以上

弱鸡直接拉满失联!

快速安装

poste.io原生支持docker,占用资源较少,安装简单,适合个人使用。

dns配置

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

注:.email 是域名后缀 和.com 是一样的,有所不同需自行更改

记录类型

主机记录

记录值

MX

qiyue.email

mail.qiyue.email

TXT

qiyue.email

v=spf1 mx ~all

A

mail

1.2.3.4 (your ip)

TXT

_dmarc

v=DMARC1; p=none; pct=100; rua=mailto:mail@qiyue.email

CNAME

imap

mail.qiyue.email

CNAME

smtp

mail.qiyue.email

CNAME

pop

mail.qiyue.email

TXT

s20160910378.domainkey.your-domain.com

k=rsa;p=MII………

最后还需要到 VPS 服务商处添加一个反向 DNS,也就是 rDNS 解析,把 IP 解析到 mail.your-domain.com 这个邮件域名就好了,这个为可选项,有些 VPS 商家不提供这种服务。

以上 DNS 解析,至少需要添加前面三个 A 解析和 MX 解析,后面几个解析为可选,不添加也能用。

我这里提供两种安装方法

第一种

修改VPS hostname

hostnamectl set-hostname mail.qiyue.email
# 修改hosts文件
vim /etc/hosts
# 添加一行
127.0.1.1 localhost.localdomain mail.qiyue.email

安装docker

# 安装docker
curl -sSL https://get.docker.com/ | sh
# 启动docker
systemctl start docker
# 设置开机启动
systemctl enable docker

安装poste.io

用docker compose安装,在要部署poste.io的目录下创建docker-compose.yml文件

version: '3.7'

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

服务

端口

说明

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

8808

Webmail 服务端口

Webmail

8843

Webmail 服务端口

请注意修改里面的域名和存储路径。

禁用反病毒功能(DISABLE_CLAMAV=TRUE)、禁用反垃圾邮件功能(DISABLE_RSPAMD=TRUE),可以大幅减低内存和CPU占用,请酌情设置禁用选项。

禁用WEB收发功能(DISABLE_ROUNDCUBE=TRUE),可以进一步减少资源占用,不过非必要不建议禁止。

8808为http端口,可以根据自己的需求修改。

# 启动poste.io
docker-compose up -d

配置NGINX反向代理

upstream poste_backend {
    server 127.0.0.1:8808;
}

server {
    listen 80;
    listen 443 ssl http2;
    server_name mail.qiyue.email;
    ssl_certificate /etc/nginx/conf.d/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/conf.d/ssl/key.pem;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
    access_log /var/log/nginx/mail.log main;

    location ^~ /.well-known {
        proxy_pass http://poste_backend;
    }

    location / {
        proxy_pass http://poste_backend;
        proxy_set_header Host $host;
        proxy_intercept_errors off;
        # real-ip
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;

        # websocket
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_read_timeout 86400;
     
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    if ($server_port = 80 ) {
        return 301 https://$host$request_uri;
    }
}

配置poste.io

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

  1. 1、设置管理员账户以及密码,然后进入后台管理页面。

  1. 配置 Let’s Encrypt 证书。

  1. 创建 dkim 密钥,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 s20160910378.domainkey.qiyue.email

左侧点击 Virtual domains 然后点击域名进行配置。

点击 DKIM keys,然后点击 Generate new key,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 s20160910378.dom_

配置邮件客户端

第三方客户端 SMTP/IMAP/POP3 配置

协议

服务器地址

端口

SSL

SMTP

mail.qiyue.email,smtp.qiyue.email

25, 465, 587

STARTTLS

IMAP

mail.qiyue.email,imap.qiyue.email

993, 143

STARTTLS

POP3

mail.qiyue.email,pop.qiyue.email

995, 110

STARTTLS

参考:https://poste.io/doc

参考:https://www.tryxd.cn/2023/08/22/posteio-mail/index.html

第二种

参考:科技lion 官方博客 的脚本一键教程

视频教程 https://www.youtube.com/watch?v=1Jr8MTNt4yE&t=385s

使用方法

Debian/Ubuntu安装下载工具

apt update -y  && apt install -y curl

CentOS安装下载工具

yum update && yum install curl

官网版一键脚本

curl -sS -O https://kejilion.pro/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh

GitHub版一键脚本 部分小伙伴会遇到官网版出现大段乱码!就用GitHub版本吧!

curl -sS -O https://raw.githubusercontent.com/kejilion/sh/main/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh

脚本主界面

脚本全面支持Ubuntu、Debian和Cent OS系统

只要执行命令自动获取最新版本

进来后依次选择 11 9 (脚本更新了,进去后看界面选择对应即可)



进来后可以看到 25端口是否可用 可用选择Y


不可用换VPS,不然安装后没有意义,无法使用

按Y后来到

这里输入你的域名 列如我的 mail.qiyue.email

注意,这里的前缀必须带mail

输入后按回车来到

这里要来到你的域名NS所在的网站 这里用 cloudflare 做演示 其他平台同上即可

审查后回到SSH终端 确认无问题后按任意键继续

现在就开始自动安装了,如果这里没有装Docker 这里会自动安装

等待安装完成后

点击这里的链接会来到

不必管这里的不安全链接,因为SSL证书没有安装,直接打开即可

Mailserver hostname 保持即可

Administrator email (email address managed by mailserver) 这里加admin@你的域名即可

Password 这里填写一个你能记住的密码

进来后来到主页

选择 Email accounts

这里步骤省略,自行探索即可

接下来如何颁发免费证书

来到系统设置

选择TLS证书

选择颁发/更改新的证书

用你当下的域名直接保存申请即可

下滑来到日志,看到这个标志就是颁发成功

再次回到上面保存后,重新加载网页即可看到证书生效,从http 变成了https 加密了

现在选择虚拟域

点击进来

点击create a new key

复制这一串代码

这里来到 cloudflare 添加TXT解析记录 粘贴到这里

回到域名邮箱

引号里这一串复制,粘贴到 cloudflare 保存

这样cloudflare 的解析就完成了,这一步是让你的邮箱更加受信任。

教程来自于

https://kejilion.blogspot.com/2023/08/lionldnmp.html

https://www.tryxd.cn/2023/08/22/posteio-mail/index.html

https://www.youtube.com/watch?v=1Jr8MTNt4yE&t=385s

再次感谢大佬们的付出