介绍
poste.io 邮件服务基于 Docker 搭建,用的是 Haraka + Dovecot + SQLite 邮件系统,能够轻易实现邮件收发、多域名控制、邮箱容量控制、邮件杀毒、邮件过滤以及 Webmail 等基础功能。同时,Poste 还提供了投递统计分析、客户端自动适配、一键安装SSL、邮件转发、邮件别名、Catch-All 等相当有用的功能。
全文使用your-domain.com和/home/postemail为域名和文件位置,注意替换。
dns配置
为了能够正常使用邮件服务,需要配置域名的 MX 记录,将邮件服务器的地址指向你的域名。下文以
mail.your-domain.com
为例。
记录类型 | 主机记录 | 记录值 |
---|---|---|
MX | @.your-domain.com | mail.your-domain.com |
TXT | @.your-domain.com | v=spf1 mx ~all |
A | a.b.c.d (your ip) | |
TXT | _dmarc | v=DMARC1; p=none; pct=100; rua=mailto:mail@your-domain.com |
CNAME | imap | mail.your-domain.com |
CNAME | smtp | mail.your-domain.com |
CNAME | pop | mail.your-domain.com |
TXT | _s20160910378._domainkey.your-domain.com | k=rsa;p=MII……… |
新建yaml文件
docker一键配置脚本, 注意修改80端口的映射, 邮箱的地址, 以及文件配置存储的位置
services:
mailserver:
image: analogic/poste.io
hostname: your-domain.com
ports:
- "25:25"
- "110:110"
- "143:143"
- "587:587"
- "993:993"
- "995:995"
- "4190:4190"
- "465:465"
- "8064: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
- /home/postemail:/data
配置nginx反向代理
注意修改端口, 证书可以先使用自己申请的免费的
# mail
server {
listen 443 ssl;
server_name mail.your-domain.com;
ssl_certificate /www/server/nginx/cert/mail/*.pem;
ssl_certificate_key /www/server/nginx/cert/mail/*.key;
# ssl
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:40m;
ssl_session_timeout 5m;
ssl_session_tickets off;
# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000";
location / {
proxy_pass http://a.b.c.d:8064;
}
}
server {
server_name mail.your-domain.com;
listen 80;
# rewrite ^(.*) https://$host$1 permanent;
location / {
proxy_pass http://a.b.c.d:8064;
}
}
运行服务
docker compose -p postemail up -d
配置poste.io
通过浏览器访问https://mail.your-domain.com,进入poste.io的配置页面,按照提示进行配置即可。
1.1 访问 Virtual domains -> 点击域名 -> DKIM key -> 点击 regenerate key -> 将生成的in txt后面的引号里的内容按照上面的表填写到dns解析中, 不含引号
微信截图_20240904093056.png1.2 访问 System settings -> TLS Certificate -> Change certificate settings, 按照以下输入
微信截图_20240904091123.png1.3 点击save changes获取证书, 等待显示以下内容, 证书获取成功, 即可设置其它
LEScript.INFO: Done !!§§!
设置安全性, 如果不需兼容旧的非加密的程序或邮件客户端, 可以跳过
1.1 停止服务
docker compose down
1.2 修改/home/postemail/server.ini文件
brand_name = "xxxx" #此处可以修改部分页面显示名称
auth_required = 0 #此处默认为1,修改为0,客户端不强制检查ssl
1.3 启动服务
docker compose -p postemail up -d
设置nginx证书
将nginx配置改为/home/postemail/ssl/letsencrypt/mail.your-domain.com/目录, 如下
ssl_certificate /home/postemail/ssl/letsencrypt/mail.your-domain.com/fullchain.pem;
ssl_certificate_key /home/postemail/ssl/letsencrypt/mail.your-domain.com/private.pem;
网友评论