更新 Docker Mail Server

X 2025-04-14 15:30:32 +00:00
parent 9731144057
commit f719f58041

@ -1,7 +1,7 @@
# 环境准备 # 环境准备
1. 公网服务器含公网IP ### 1.公网服务器含公网IP
2. 域名一个,做好解析,邮箱地址xxx.xx切换为购买的域名 ### 2.域名一个,做好解析,邮箱地址xxx.xx切换为购买的域名
例如: 例如:
| 类型 | 记录 | 值 | | 类型 | 记录 | 值 |
@ -11,8 +11,8 @@
| TXT | @ | v=spf1 mx ~all | | TXT | @ | v=spf1 mx ~all |
| TXT | _dmarc | v=DMARC1; p=quarantine; rua=mailto:dmarc.report@xxx.xx; ruf=mailto:dmarc.report@xxx.xx; fo=0; adkim=r; aspf=r; pct=100; rf=afrf; ri=86400; sp=quarantine | | TXT | _dmarc | v=DMARC1; p=quarantine; rua=mailto:dmarc.report@xxx.xx; ruf=mailto:dmarc.report@xxx.xx; fo=0; adkim=r; aspf=r; pct=100; rf=afrf; ri=86400; sp=quarantine |
1. 服务器安装Docker和Docker Compose ### 3.服务器安装Docker和Docker Compose
2. 申请证书放到docker数据目录的ssl文件夹下 ### 4.申请证书放到docker数据目录的ssl文件夹下
``` ```
apt install cerbot -y apt install cerbot -y
@ -28,4 +28,52 @@ This certificate expires on 2025-07-13.
These files will be updated when the certificate renews. These files will be updated when the certificate renews.
#然后移动到指定目录 #然后移动到指定目录
```
# 下载docker文件
```
git clone https://github.com/docker-mailserver/docker-mailserver.git
```
# 修改配置文件
```
services:
mailserver:
image: ghcr.io/docker-mailserver/docker-mailserver:latest
container_name: mailserver
# Provide the FQDN of your mail server here (Your DNS MX record should point to this value)
hostname: mail.xxx.xx
env_file: mailserver.env
# More information about the mail-server ports:
# https://docker-mailserver.github.io/docker-mailserver/latest/config/security/understanding-the-ports/
ports:
- "25:25" # SMTP (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead)
- "143:143" # IMAP4 (explicit TLS => STARTTLS)
- "465:465" # ESMTP (implicit TLS)
- "587:587" # ESMTP (explicit TLS => STARTTLS)
- "993:993" # IMAP4 (implicit TLS)
volumes:
- ./docker-data/dms/mail-data/:/var/mail/
- ./docker-data/dms/mail-state/:/var/mail-state/
- ./docker-data/dms/mail-logs/:/var/log/mail/
- ./docker-data/dms/config/:/tmp/docker-mailserver/
- /etc/localtime:/etc/localtime:ro
restart: always
stop_grace_period: 1m
# Uncomment if using `ENABLE_FAIL2BAN=1`:
# cap_add:
# - NET_ADMIN
healthcheck:
test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1"
timeout: 3s
retries: 0
networks:
DockerMacvlan: # 使用已存在的macvlan网络
ipv4_address: 192.xxx.x.xxx # 分配静态IP地址
networks:
DockerMacvlan:
external: true # 引用已存在的网络
``` ```