我们有一个带有 python flask 服务的容器,它在端口 5000 中监听。我们需要能够从该容器向 smtp.office365.com 发送通知电子邮件到端口 587。
这个容器,当部署在本地机器上时可以完美运行,但是当部署在 swarm 服务器中时,返回以下错误代码:[Errno 99] Cannot assign requested address
根据我找到的信息,我猜测发送电子邮件时的传出连接配置有问题,但我仍然不确定容器在部署时发送电子邮件需要什么额外配置与在本地部署相比,一群。
在 dockerfile 中,只有 5000 端口被暴露并绑定(bind)到 flask 服务器。
使用 smtplib 发送电子邮件时,只需要指定 smtp 服务器的端口(在我的情况下为 587)。
我会错过什么?我需要为此公开新端口吗?绑定(bind)到本地主机可能有问题吗?我没有清楚地了解邮件所遵循的路径,因为它是从我的 python 代码发送的,直到它到达 smtp 服务器。
最佳答案
在使用 docker-compose 时遇到了同样的问题。在我使用 compose 打开端口“587”后工作
- ports
- "587:587"
关于python - 使用 smtplib 发送邮件在本地部署时有效,但在 swarm 中部署时失败(无法分配请求的地址),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62081877/