前言 poste.io 邮件服务基于 Docker 搭建,用的是 Haraka + Dovecot + SQLite 邮件系统,占用资源较少,安装简单,适合个人使用。

VPS上的配置

修改VPS hostname

hostnamectl set-hostname mail.your-domain.com

修改hosts文件

vim /etc/hosts

添加一行

127.0.1.1 localhost.localdomain mail.your-domain.com

安装poste

docker compose文件示例:

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"
      - "127.0.0.1:8808:80"
      - "127.0.0.1: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
  • 禁用反病毒功能(DISABLE_CLAMAV=TRUE)、禁用反垃圾邮件功能(DISABLE_RSPAMD=TRUE),可以大幅减低内存和CPU占用,请酌情设置禁用选项。

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

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

Dns配置

记录类型主机记录记录值
Amail1.2.3.4 (your ip)
MXyour-domain.commail.your-domain.com
TXTyour-domain.comv=spf1 mx ~all
TXT_s20160910378._domainkey.your-domain.comk=rsa;p=MII.........
TXT_dmarcv=DMARC1; p=none; pct=100; rua=mailto:mail@your-domain.com
CNAMEimapmail
CNAMEsmtpmail
CNAMEpopmail

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

配置poste

通过浏览器访问https://mail.your-domain.com/admin/login进入poste.io的配置页面,按照提示进行配置,然后点击 Generate new key,生成 key,添加到 DNS 解析记录,就是上面最后一条解析_s20160910378._domainkey.your-domain.com

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

搭建完毕之后我们也可以通过客户端软件连接到我们的邮箱,如thunderbird.

协议服务器地址端口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

Done.