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:

  1. Include sendgrid subpackage as part of your Airflow installation, e.g.,

pip install 'apache-airflow[sendgrid]'
  1. Update email_backend property in [email] section in airflow.cfg, i.e.

    [email]
    email_backend = airflow.providers.sendgrid.utils.emailer.send_email
    email_conn_id = sendgrid_default
    
  2. Create a connection called sendgrid_default, or choose a custom connection name and set it in email_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:

  1. Include amazon subpackage as part of your Airflow installation:

pip install 'apache-airflow[amazon]'
  1. Update email_backend property in [email] section in airflow.cfg:

    [email]
    email_backend = airflow.providers.amazon.aws.utils.emailer.send_email
    email_conn_id = aws_default
    
  2. Create a connection called aws_default, or choose a custom connection name and set it in email_conn_id.

Was this entry helpful?