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_smtpsubject_template = /path/to/my_subject_template_filehtml_content_template = /path/to/my_html_content_template_file
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_backendairflow.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>
:::info
Note:
For more information on setting the configuration, see Setting Configuration Options
:::
1. Send email using SendGrid
Airflow can be configured to send e-mail using SendGrid.
Follow the steps below to enable it:
Include
sendgridsubpackage as part of your Airflow installation, e.g.,$ pip install 'apache-airflow[sendgrid]'
Update
email_backendproperty in[email]section inairflow.cfg, i.e.[email]email_backend = airflow.providers.sendgrid.utils.emailer.send_emailemail_conn_id = sendgrid_default
Configure SendGrid specific environment variables at all Airflow instances:
$ export SENDGRID_MAIL_FROM={your-mail-from}$ export SENDGRID_API_KEY={your-sendgrid-api-key}
- Create a connection called
sendgrid_default, or choose a custom connection name and set it inemail_conn_id.2. Send email using AWS SES
Airflow can be configured to send e-mail using AWS SES.
Follow the steps below to enable it:
Include
amazonsubpackage as part of your Airflow installation:$ pip install 'apache-airflow[amazon]'
Update
email_backendproperty in[email]section inairflow.cfg:[email]email_backend = airflow.providers.amazon.aws.utils.emailer.send_emailemail_conn_id = aws_default
Create a connection called
aws_default, or choose a custom connection name and set it inemail_conn_id.
