电子邮件配置¶
您可以通过在 airflow.cfg
文件的 [email]
部分设置 subject_template
和/或 html_content_template
来配置发送的电子邮件。
[email]
email_backend = airflow.utils.email.send_email_smtp
subject_template = /path/to/my_subject_template_file
html_content_template = /path/to/my_html_content_template_file
等效环境变量如下所示:
AIRFLOW__EMAIL__EMAIL_BACKEND=airflow.utils.email.send_email_smtp
AIRFLOW__EMAIL__SUBJECT_TEMPLATE=/path/to/my_subject_template_file
AIRFLOW__EMAIL__HTML_CONTENT_TEMPLATE=/path/to/my_html_content_template_file
您可以通过在 [email]
部分设置 from_email
来配置发件人电子邮件地址,如下所示:
[email]
from_email = "John Doe <johndoe@example.com>"
等效环境变量如下所示:
AIRFLOW__EMAIL__FROM_EMAIL="John Doe <johndoe@example.com>"
要配置 SMTP 设置,请查看标准配置中的 SMTP 部分。如果您不想将 SMTP 凭据存储在配置文件或环境变量中,可以创建一个名为 smtp_default
的 Email
类型连接,或者选择一个自定义连接名称并在配置中将 email_conn_id
设置为其名称,并将 SMTP 用户名和密码存储在其中。其他 SMTP 设置,如主机、端口等,始终只从配置中获取。连接可以是任何类型(例如 'HTTP connection')。
如果您想检查当前设置的电子邮件后端,可以使用 airflow config get-value email email_backend
命令,如下例所示。
$ airflow config get-value email email_backend
airflow.utils.email.send_email_smtp
要在模板文件中访问任务信息,您可以使用 Jinja 模板。
例如,一个 html_content_template
文件可能如下所示:
Try {{try_number}} out of {{max_tries + 1}}<br>
Exception:<br>{{exception_html}}<br>
Log: <a href="{{ti.log_url}}">Link</a><br>
Host: {{ti.hostname}}<br>
Mark success: <a href="{{ti.mark_success_url}}">Link</a><br>
注意
有关设置配置的更多信息,请参阅设置配置选项
使用 SendGrid 发送电子邮件¶
使用默认 SMTP¶
您可以使用默认的 Airflow SMTP 后端通过 SendGrid 发送电子邮件
[smtp] smtp_host=smtp.sendgrid.net smtp_starttls=False smtp_ssl=False smtp_port=587 smtp_mail_from=<your-from-email>
等效环境变量如下所示:
AIRFLOW__SMTP__SMTP_HOST=smtp.sendgrid.net AIRFLOW__SMTP__SMTP_STARTTLS=False AIRFLOW__SMTP__SMTP_SSL=False AIRFLOW__SMTP__SMTP_PORT=587 AIRFLOW__SMTP__SMTP_MAIL_FROM=<your-from-email>
使用 SendGrid Provider¶
Airflow 可以配置为使用 SendGrid 发送电子邮件。
按照以下步骤启用它:
设置您的 SendGrid 账户,获取 SMTP 用户名和 API 密钥。
在安装 Airflow 时包含
sendgrid
provider,例如,
pip install 'apache-airflow[sendgrid]' --constraint ...
- 或
pip install 'apache-airflow-providers-sendgrid' --constraint ...
更新
airflow.cfg
文件的[email]
部分中的email_backend
属性,例如:[email] email_backend = airflow.providers.sendgrid.utils.emailer.send_email email_conn_id = sendgrid_default from_email = "hello@eg.com"
等效环境变量如下所示:
AIRFLOW__EMAIL__EMAIL_BACKEND=airflow.providers.sendgrid.utils.emailer.send_email AIRFLOW__EMAIL__EMAIL_CONN_ID=sendgrid_default SENDGRID_MAIL_FROM=hello@thelearning.dev
创建名为
sendgrid_default
的连接,或者选择一个自定义连接名称并将其设置为email_conn_id
,类型为 'Email'。连接中只使用登录名和密码。

注意
成功、失败和重试的回调将使用相同的配置发送电子邮件
使用 AWS SES 发送电子邮件¶
Airflow 可以配置为使用 AWS SES 发送电子邮件。
按照以下步骤启用它:
在安装 Airflow 时包含
amazon
子包
pip install 'apache-airflow[amazon]'
更新
airflow.cfg
文件的[email]
部分中的email_backend
属性[email] email_backend = airflow.providers.amazon.aws.utils.emailer.send_email email_conn_id = aws_default from_email = From email <email@example.com>
请注意,对于 SES,您必须将 from_email 配置为可以从 SES 发送消息的有效电子邮件地址。
创建名为
aws_default
的连接,或者选择一个自定义连接名称并将其设置为email_conn_id
。连接类型应为Amazon Web Services
。