我应该用什么方法发送带有气流的电子邮件?

What method should I send emails with airflow?

所以我对 Airflow、DAG 这九个方面真的很陌生。

所以我有一个任务需要将一些数据通过电子邮件发送给收件人列表。

现在,我有一个 python 功能可以发送电子邮件,我打算将此功能分配给我的 DAG 中的任务。

但是,在给我的任务中,我被告知管理员应该能够触发 DAG,这样其他收件人就可以通过气流配置 json 传递他们的电子邮件来接收数据。我假设这意味着 airflow.cfg.

我一直在谷歌上搜索建议,但似乎大多数人在他们的 airflow.cfg 文件中设置了电子邮件部分,以便在 dag 出现错误时向他们发送电子邮件,而不是发送到列表收件人。

我想知道:

-如果我通过 airflow.cfg 文件传递​​电子邮件收件人列表,我是否仍可以将此电子邮件发送过程分配给 DAG 中的任务?

您应该使用 params,这是一个可以在 DAG 级别参数定义的字典,并且在每个任务中都可以访问。这样您就可以传递收件人列表,然后使用 EmailOperator 发送电子邮件。

来自UI:

from airflow.operators.email_operator import EmailOperator

    email_task = EmailOperator(
        to='{{ params.mail_recipients }}',
        task_id='email_task',
        subject='My subject',
        html_content=" Templated HTML content - Today is {{ ds }}"
    )

请记住之前使用 params.

配置 SMTP block in Airflow settings. Check this 以获取详细信息和示例

希望对你有用!