SlothのBlog

  • 首页
  • 分类
    • 教程
    • 释义
    • 分享
  • 服务器
  1. 首页
  2. 教程
  3. 正文

两分钟搭建好邮件服务器——Poste.io

2024年1月21日 0条评论

介绍

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/ | bash -s docker

设置开机启动


systemctl enable docker

安装poste.io


docker run -d \

-p 25:25 \

-p 80:80 \

-p 110:110 \

-p 143:143 \

-p 443:443 \

-p 587:587 \

-p 993:993 \

-p 995:995 \

-v /etc/localtime:/etc/localtime:ro \

-v /opt/mail/data:/data \ #数据映射路径

-e DISABLE_CLAMAV=TRUE \ #禁用反病毒功能(可选)

-e DISABLE_RSPAMD=TRUE \ #禁用反垃圾邮件功能(可选)

--name "Mail" \

-h "mail.*.com" \ #你的邮局域名

-t analogic/poste.io:latest

禁用反病毒功能(DISABLE_CLAMAV=TRUE)、禁用反垃圾邮件功能(DISABLE_RSPAMD=TRUE),可以大幅减低内存和CPU占用,

酌情设置禁用选项。

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

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

服务端口说明
SMTP25SMTP 服务端口
IMAP143IMAP 服务端口
POP3110POP3 服务端口
SMTPS465SMTPS 服务端口
IMAPS993IMAPS 服务端口
POP3S995POP3S 服务端口
MSA587SMTP 端口主要由电子邮件客户端在 STARTTLS 和身份验证之后使用
Sieve4190远程筛子设置
Webmail8808Webmail 服务端口
Webmail8843Webmail 服务端口

配置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

协议服务器地址端口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
标签: poste.io 自建邮局
最后更新:2024年1月21日

slotheve

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

文章目录
  • 介绍
  • 快速安装
    • dns配置
    • 修改VPS
    • 安装docker
    • 安装poste.io
    • 配置NGINX反向代理
    • 配置poste.io
  • 配置邮件客户端
标签聚合
wordpress 内网穿透 frp docker cmd docker nginx nginx面板 nginxwebui mynodequery

COPYRIGHT © 2024 SlothのBlog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang