python - 使用 smtplib 发送邮件在本地部署时有效,但在 swarm 中部署时失败(无法分配请求的地址)

标签 python docker connection smtplib swarm

我们有一个带有 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/

相关文章:

java.lang.IllegalArgumentException : Username must not be null or empty , AbstractXMPPConnection.java:484

python - 在 Jinja2 中禁用后重新启用自动转义

python - 通过 Google People API 创建新联系人

docker - 负载平衡工作不正常

java - 从 MySql 迁移 : MariaDB server closing client connections unexpectedly

ruby-on-rails - 如何使类\对象在rails中全局可用?

python - 成对距离 python(一个基向量对许多其他基向量)

python - 当新数据到来时,如何重新训练 pyspark 中保存的线性回归 ML 模型

docker - GitLab CI - 无法登录到 Docker Registry (x509)

java - 如何使用 Payara 和虚拟服务器配置子域?