气流:电子邮件配置

时间:2021-07-06 20:31:54

标签: python airflow

我正在安排从 Airflow 2.1.1 发送电子邮件的任务。 我已经正确配置了airflow.cfg文件中的smtp参数

smtp_host = mr.my_domain.com
smtp_starttls = False
smtp_ssl = True
smtp_user = email@my_domain.com
smtp_password = ********
smtp_port = 465
smtp_mail_from = email@my_domain.com
smtp_timeout = 30
smtp_retry_limit = 5

如果我从 cli 测试任务,电子邮件会正确发送,但我收到以下警报消息:

..../lib/python3.6/site-packages/airflow/utils/email.py:101 PendingDeprecationWarning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead.

来自 GUI 的消息是:

INFO - Marking task as FAILED.

所以我正在尝试按照文档中的说明创建连接:

https://airflow.apache.org/docs/apache-airflow/stable/howto/email-config.html

要配置 SMTP 凭据,请创建一个名为 smtp_default 的连接,或选择自定义连接名称并将其设置在 email_conn_id 中。

但是在创建新连接时,选项中不存在 SMTP。

希望你能帮我一把,非常感谢。

1 个答案:

答案 0 :(得分:2)

最近此 PR 更新了有关电子邮件配置的文档。由于您正在查看文档的稳定版本,因此在下一个 Airflow 版本发布之前不会在那里反映出来。

<块引用>

如果您不想将 SMTP 凭据存储在配置或 环境变量,您可以创建一个名为的连接 smtp_default,或选择自定义连接名称并设置 email_conn_id 在配置中使用它的名称并存储 SMTP 用户名密码在里面。其他 SMTP 设置,如主机、端口等 始终仅从配置中获取。连接可以 可以是任何类型(例如“HTTP 连接”)。

我认为可能让您感到困惑的是 PR 中所做的更改添加了 :

# Email connection to use

email_conn_id = smtp_default

airflow.cfg 这样做是因为有几个可以发送电子邮件的服务 (smtp/SES/Sendgrid setc..) 它需要标准化。