自建邮局-邮件服务器搭建

介绍

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

快速安装

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

dns配置

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

记录类型主机记录记录值
MXyour-domain.commail.your-domain.com
TXTyour-domain.comv=spf1 mx ~all
Amail1.2.3.4 (your ip)
TXT_dmarcv=DMARC1; p=none; pct=100; rua=mailto:mail@your-domain.com
CNAMEimapmail
CNAMEsmtpmail
CNAMEpopmail
TXT_s20160910378._domainkey.your-domain.comk=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
服务端口说明
SMTP25SMTP 服务端口
IMAP143IMAP 服务端口
POP3110POP3 服务端口
SMTPS465SMTPS 服务端口
IMAPS993IMAPS 服务端口
POP3S995POP3S 服务端口
MSA587SMTP 端口主要由电子邮件客户端在 STARTTLS 和身份验证之后使用
Sieve4190远程筛子设置
Webmail8808Webmail 服务端口
Webmail8843Webmail 服务端口

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

禁用反病毒功能(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、设置管理员账户以及密码,然后进入后台管理页面。
083f086e6c0ea80ae6036.png
  1. 配置 Let’s Encrypt 证书。
665601ef7b20bb48a4795.png
a3b5cea8a6e3a6b61ef07.png
  1. 创建 dkim 密钥,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 _s20160910378._domainkey.your-domain.com

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

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

8b0c46665218fb98acd17.png

配置邮件客户端

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

协议服务器地址端口SSL
SMTPmail.your-domain.com,smtp.your-domain.com25, 465, 587STARTTLS
IMAPmail.your-domain.com,imap.your-domain.com993, 143STARTTLS
POP3mail.your-domain.com,pop.your-domain.com995, 110STARTTLS
© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏 分享
评论 抢沙发

    暂无评论内容