• 搜索
  • 侧边栏壁纸
    博主头像
    慕怀夕 博主等级

    行动起来,活在当下

    • 累计撰写 13 篇文章
    • 累计创建 9 个标签
    • 累计收到 0 条评论

    目 录CONTENT

    文章目录

    postio搭建邮局

    小Han同学
    2025-07-12 / 0 评论 / 0 点赞 / 6 阅读 / 0 字
    温馨提示:
    部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

    介绍

    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 商家不提供这种服务。

    posteio

    以上 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. 1、设置管理员账户以及密码,然后进入后台管理页面。

    posteio

    1. 配置 Let’s Encrypt 证书。

    posteio
    posteio

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

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

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

    posteio

    配置邮件客户端

    第三方客户端 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

    0
    1. 支付宝打赏

      qrcode alipay
    2. 微信打赏

      qrcode weixin

    评论区