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
Equivalent environment variables look like:
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
You can configure a sender's email address by setting from_email
in the [email]
section like:
[email]
from_email = "John Doe <johndoe@example.com>"
Equivalent environment variables look like:
AIRFLOW__EMAIL__FROM_EMAIL="John Doe <johndoe@example.com>"
To configure SMTP settings, checkout the :ref:`SMTP <config:smtp>` section in the standard configuration.
If you do not want to store the SMTP credentials in the config or in the environment variables, you can create a
connection called smtp_default
of Email
type, or choose a custom connection name and set the email_conn_id
with it's name in
the configuration & store SMTP username-password in it. Other SMTP settings like host, port etc always gets picked up
from the configuration only. The connection can be of any type (for example 'HTTP connection').
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> Mark success: <a href="{{ti.mark_success_url}}">Link</a><br>
Note
For more information on setting the configuration, see :doc:`set-config`
You can use the default airflow SMTP backend to send email with 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>
Equivalent environment variables looks like
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>
Airflow can be configured to send e-mail using SendGrid.
Follow the steps below to enable it:
sendgrid
provider as part of your Airflow installation, e.g.,pip install 'apache-airflow[sendgrid]' --constraint ...
pip install 'apache-airflow-providers-sendgrid' --constraint ...
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
from_email = "hello@eg.com"
Equivalent environment variables looks like
AIRFLOW__EMAIL__EMAIL_BACKEND=airflow.providers.sendgrid.utils.emailer.send_email AIRFLOW__EMAIL__EMAIL_CONN_ID=sendgrid_default SENDGRID_MAIL_FROM=hello@thelearning.dev
Create a connection called sendgrid_default
, or choose a custom connection
name and set it in email_conn_id
of 'Email' type. Only login and password
are used from the connection.
Note
The callbacks for success, failure and retry will use the same configuration to send the email
Airflow can be configured to send e-mail using AWS SES.
Follow the steps below to enable it:
amazon
subpackage as part of your Airflow installation:pip install 'apache-airflow[amazon]'
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
from_email = From email <email@example.com>
Note that for SES, you must configure from_email to the valid email that can send messages from SES.
aws_default
, or choose a custom connection
name and set it in email_conn_id
. The type of connection should be Amazon Web Services
.此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。