Email Configuration¶
You can configure the email that is being sent in your airflow.cfg
by setting a subject_template
and/or a html_content_template
in the [email]
section.
[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
To configure SMTP credentials, create a connection called smtp_default
, or
choose a custom connection name and set it in email_conn_id
.
If you want to check which email backend is currently set, you can use airflow config get-value email email_backend
command as in
the example below.
$ airflow config get-value email email_backend
airflow.utils.email.send_email_smtp
To access the task's information you use Jinja Templating in your template files.
For example a html_content_template
file could look like this:
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>
Log file: {{ti.log_filepath}}<br>
Mark success: <a href="{{ti.mark_success_url}}">Link</a><br>
Note
For more information on setting the configuration, see Setting Configuration Options
Send email using SendGrid¶
Airflow can be configured to send e-mail using SendGrid.
Follow the steps below to enable it:
Include
sendgrid
subpackage as part of your Airflow installation, e.g.,
pip install 'apache-airflow[sendgrid]'
Update
email_backend
property in[email]
section inairflow.cfg
, i.e.[email] email_backend = airflow.providers.sendgrid.utils.emailer.send_email email_conn_id = sendgrid_default
Create a connection called
sendgrid_default
, or choose a custom connection name and set it inemail_conn_id
.
Send email using AWS SES¶
Airflow can be configured to send e-mail using AWS SES.
Follow the steps below to enable it:
Include
amazon
subpackage as part of your Airflow installation:
pip install 'apache-airflow[amazon]'
Update
email_backend
property in[email]
section inairflow.cfg
:[email] email_backend = airflow.providers.amazon.aws.utils.emailer.send_email email_conn_id = aws_default
Create a connection called
aws_default
, or choose a custom connection name and set it inemail_conn_id
.