我正在安排从 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。
希望你能帮我一把,非常感谢。
答案 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..) 它需要标准化。