首页 > 解决方案 > 在 Airflow 上,连接到 SMTP 主机时连接被拒绝

问题描述

按照下面文章中解释的类似内容通过 Airflow 中的 SMTP 服务器发送电子邮件: https ://towardsdatascience.com/automating-emails-in-apache-airflow-a-how-to-guide-1d2330a29d1e

我没有像在我们的生产环境中那样使用默认的airflow.cfg 来配置smtp 主机,我们无法控制它。但在产品中,似乎 Airflow 无法连接到 SMTP 主机,而我可以在本地运行相同的代码并获取电子邮件。错误如下:

错误描述

我们还通过 prod 服务器上的独立 python 脚本检查了我们能够访问 SMTP 主机,所以这不是主机的问题,而是 Airflow 的问题。

对此有何建议?

标签: pythonsmtpairflowsmtplib

解决方案


好吧,我们发现这是从生产机器连接到远程 SMTP 服务器的问题,可能是由于客户端和服务器之间的防火墙。我们通过在这些 prod 框中运行 python 脚本来确认它,并且在连接时它在以下行失败:

server = smtplib.SMTP(smtp_server) 

server.sendmail(sender_email, receiver_email, message.as_string())

错误:ConnectionRefusedError:[Errno 111] 连接被拒绝

为之前的困惑道歉。

早些时候我们尝试通过 sendmail unix 命令,它工作了,所以混乱:

sendmail email_address -s smtp_server

Subject: Test mail from prod_env

Hello, email received

所以这不是 Airflow 的问题,而只是从 prod 服务器连接到 smtp 服务器。谢谢。


推荐阅读