From f719f5804169a264e5e49e5693e537ad2f7ffa61 Mon Sep 17 00:00:00 2001 From: X Date: Mon, 14 Apr 2025 15:30:32 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Docker=20Mail=20Server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docker-Mail-Server.md | 56 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/Docker-Mail-Server.md b/Docker-Mail-Server.md index 5d49882..d92219a 100644 --- a/Docker-Mail-Server.md +++ b/Docker-Mail-Server.md @@ -1,7 +1,7 @@ # 环境准备 -1. 公网服务器,含公网IP -2. 域名一个,做好解析,邮箱地址xxx.xx切换为购买的域名 +### 1.公网服务器,含公网IP +### 2.域名一个,做好解析,邮箱地址xxx.xx切换为购买的域名 例如: | 类型 | 记录 | 值 | @@ -11,8 +11,8 @@ | 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 | -1. 服务器安装Docker和Docker Compose -2. 申请证书,放到docker数据目录的ssl文件夹下 +### 3.服务器安装Docker和Docker Compose +### 4.申请证书,放到docker数据目录的ssl文件夹下 ``` apt install cerbot -y @@ -28,4 +28,52 @@ This certificate expires on 2025-07-13. 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 # 引用已存在的网络 ``` \ No newline at end of file