首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Docker运行aiosmtpd

如何通过Docker运行aiosmtpd
EN

Stack Overflow用户
提问于 2022-04-22 09:39:59
回答 1查看 117关注 0票数 1

我的文件

代码语言:javascript
复制
FROM python:3.10-alpine

LABEL Description="test smtp server"
EXPOSE 8025
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN python -m pip install --upgrade pip && pip install -r requirements.txt
CMD python3 -m aiosmtpd --nosetuid --debug --debug --listen 127.0.0.1:8025

当我使用命令运行这个容器时

代码语言:javascript
复制
docker build -t test-smtp-image . && docker run -p 8025:8025 --name skad-test-smtp test-smtp-image 

并将邮件从运行容器的主机绑定到它,我得到了下一个异常。

代码语言:javascript
复制
    raise SMTPConnectError(
aiosmtplib.errors.SMTPConnectError: Error connecting to 127.0.0.1 on port 8025: Unexpected EOF received

但是,当我用相同的脚本和aiosmtpd在主机上运行命令发送电子邮件时,效果很好。

发送邮件脚本:

代码语言:javascript
复制
from email.message import EmailMessage
import aiosmtplib
import asyncio

m = EmailMessage()
m['From'] = "test@test.com"
m["To"] = 'test@test.com'
m["Subject"] = "Test subject"
m.set_content("Test msg")

loop = asyncio.get_event_loop()
r = loop.run_until_complete(aiosmtplib.send(m, hostname="127.0.0.1", port=8025))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-26 13:08:22

多亏了David Maze

正确的Dockerfile:

代码语言:javascript
复制
FROM python:3.10-alpine

LABEL Description="test smtp server"
EXPOSE 8025
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN python -m pip install --upgrade pip && pip install -r requirements.txt
CMD python3 -m aiosmtpd --nosetuid --debug --debug --listen 0.0.0.0:8025
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71966626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档