介绍
poste.io 邮件服务基于 Docker 搭建,用的是 Haraka + Dovecot + SQLite 邮件系统,能够轻易实现邮件收发、多域名控制、邮箱容量控制、邮件杀毒、邮件过滤以及 Webmail 等基础功能。同时,Poste 还提供了投递统计分析、客户端自动适配、一键安装SSL、邮件转发、邮件别名、Catch-All 等相当有用的功能。
快速安装
poste.io原生支持docker,占用资源较少,安装简单,适合个人使用。
dns配置
为了能够正常使用邮件服务,需要配置域名的 MX 记录,将邮件服务器的地址指向你的域名。下文以mail.your-domain.com为例。
| 记录类型 | 主机记录 | 记录值 | 
|---|
| MX | your-domain.com | mail.your-domain.com | 
| TXT | your-domain.com | v=spf1 mx ~all | 
| A | mail | 1.2.3.4 (your ip) | 
| TXT | _dmarc | v=DMARC1; p=none; pct=100; rua=mailto:mail@your-domain.com | 
| CNAME | imap | mail | 
| CNAME | smtp | mail | 
| CNAME | pop | mail | 
| 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.your-domain.com
 | 
| # 修改hosts文件
vim /etc/hosts
 | 
| # 添加一行
127.0.1.1 localhost.localdomain mail.your-domain.com
 | 
安装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.your-domain.com
    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@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
      - ./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.your-domain.com;
    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.your-domain.com,进入poste.io的配置页面,按照提示进行配置即可。
- 1、设置管理员账户以及密码,然后进入后台管理页面。 

- 配置 Let’s Encrypt 证书。 


- 创建 dkim 密钥,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 s20160910378.domainkey.your-domain.com 
左侧点击 Virtual domains 然后点击域名进行配置。
点击 DKIM keys,然后点击 Generate new key,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 s20160910378.domainkey.your-domain.com

配置邮件客户端
第三方客户端 SMTP/IMAP/POP3 配置
| 协议 | 服务器地址 | 端口 | SSL | 
|---|
| SMTP | mail.your-domain.com,smtp.your-domain.com | 25, 465, 587 | STARTTLS | 
| IMAP | mail.your-domain.com,imap.your-domain.com | 993, 143 | STARTTLS | 
| POP3 | mail.your-domain.com,pop.your-domain.com | 995, 110 | STARTTLS | 
 
                    
                  
评论区