電子郵件設定¶
您可以在您的 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 連線」)。
如果您想檢查目前設定的電子郵件後端,您可以使用 airflow config get-value email email_backend
命令,如下例所示。
$ airflow config get-value email email_backend
airflow.utils.email.send_email_smtp
若要存取任務的資訊,您可以在範本檔案中使用 Jinja Templating。
例如,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_user=apikey smtp_password=<generated-api-key> 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_USER=apikey AIRFLOW__SMTP__SMTP_PASSWORD=<generated-api-key> AIRFLOW__SMTP__SMTP_PORT=587 AIRFLOW__SMTP__SMTP_MAIL_FROM=<your-from-email>
使用 SendGrid Provider¶
Airflow 可以設定為使用 SendGrid 發送電子郵件。
請按照以下步驟啟用它
設定您的 SendGrid 帳戶、SMTP 並複製使用者名稱和 API 金鑰。
將
sendgrid
provider 作為 Airflow 安裝的一部分包含進來,例如,
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' 類型的email_conn_id
中設定它。連線中僅使用登入名稱和密碼。

注意
成功、失敗和重試的回呼將使用相同的組態發送電子郵件
使用 AWS SES 發送電子郵件¶
Airflow 可以設定為使用 AWS SES 發送電子郵件。
請按照以下步驟啟用它
將
amazon
子套件作為 Airflow 安裝的一部分包含進來
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。