From a5738304a1f9c96e1397c6352ba0f934a441fda9 Mon Sep 17 00:00:00 2001 From: ZacharyZcR <2903735704@qq.com> Date: Sun, 22 Dec 2024 04:40:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0SMTP=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TestDocker/SMTP/Dockerfile | 51 ++++++++++++++++++++++++++++++++++++++ TestDocker/SMTP/README.txt | 2 ++ TestDocker/SMTP/start.sh | 3 +++ 3 files changed, 56 insertions(+) create mode 100644 TestDocker/SMTP/Dockerfile create mode 100644 TestDocker/SMTP/README.txt create mode 100644 TestDocker/SMTP/start.sh diff --git a/TestDocker/SMTP/Dockerfile b/TestDocker/SMTP/Dockerfile new file mode 100644 index 0000000..91ea8a7 --- /dev/null +++ b/TestDocker/SMTP/Dockerfile @@ -0,0 +1,51 @@ +FROM ubuntu:20.04 + +ENV DEBIAN_FRONTEND=noninteractive + +# 安装必要的软件 +RUN apt-get update && apt-get install -y \ + postfix \ + sasl2-bin \ + libsasl2-modules \ + mailutils \ + rsyslog \ + && rm -rf /var/lib/apt/lists/* + +# 配置Postfix +RUN postconf -e 'smtpd_sasl_auth_enable = yes' \ + && postconf -e 'smtpd_sasl_security_options = noanonymous' \ + && postconf -e 'smtpd_sasl_local_domain =' \ + && postconf -e 'broken_sasl_auth_clients = yes' \ + && postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' \ + && postconf -e 'inet_interfaces = all' + +# 配置SASL +RUN mkdir -p /etc/postfix/sasl/ +RUN echo "pwcheck_method: auxprop" > /etc/postfix/sasl/smtpd.conf \ + && echo "auxprop_plugin: sasldb" >> /etc/postfix/sasl/smtpd.conf \ + && echo "mech_list: PLAIN LOGIN" >> /etc/postfix/sasl/smtpd.conf + +# 创建SASL用户(使用固定域名localhost) +RUN echo "123456" | saslpasswd2 -p -c -u localhost test +RUN echo "admin123" | saslpasswd2 -p -c -u localhost admin +RUN echo "root123" | saslpasswd2 -p -c -u localhost root + +# 设置权限 +RUN chown postfix:postfix /etc/sasldb2 + +# 创建日志目录和文件 +RUN mkdir -p /var/log && \ + touch /var/log/mail.log && \ + chmod 644 /var/log/mail.log + +# 开放端口 +EXPOSE 25 + +# 创建启动脚本 +RUN echo '#!/bin/bash' > /start.sh \ + && echo 'service rsyslog start' >> /start.sh \ + && echo 'service postfix start' >> /start.sh \ + && echo 'tail -f /var/log/mail.log' >> /start.sh \ + && chmod +x /start.sh + +CMD ["/start.sh"] \ No newline at end of file diff --git a/TestDocker/SMTP/README.txt b/TestDocker/SMTP/README.txt new file mode 100644 index 0000000..f2ee0b9 --- /dev/null +++ b/TestDocker/SMTP/README.txt @@ -0,0 +1,2 @@ +docker build -t smtp-weak . +docker run -d --name smtp-test -p 25:25 smtp-weak \ No newline at end of file diff --git a/TestDocker/SMTP/start.sh b/TestDocker/SMTP/start.sh new file mode 100644 index 0000000..c9146ae --- /dev/null +++ b/TestDocker/SMTP/start.sh @@ -0,0 +1,3 @@ +#!/bin/bash +service postfix start +tail -f /var/log/mail.log \ No newline at end of file