apache-airflow-providers-mailer

Deze provider heeft al zijn eigen volledige Sphinx-documentatieboom in de eigen repo, onder docs/apache-airflow-providers-mailer/. De inhoud op deze pagina spiegelt dat; het is geen nieuw geschreven tekst.

Verstuurt e-mail vanuit Airflow-taken via gewone SMTP, de Microsoft Graph API, of SMTP met OAuth2/XOAUTH2 — elk met een eigen Airflow-connectietype, zodat credentials in Connections leven, niet in DAG-code of airflow.cfg.

Connectietypes

Zie Mailer-connectie voor een walkthrough met screenshots van het aanmaken van deze connectie in de Airflow UI.

Connectietype

Weergavenaam

Hook

smtp (het eigen ingebouwde type van Airflow)

Gewone SMTP

De standaard SMTP-connectie van Airflow — geen extra provider nodig

mailer_graph

Microsoft Graph Email

airflow.providers.mailer.hooks.graph.MailerGraphHook — automatisch geprovisioned op de beheerde Airflow-deployments van het platform, geen handmatige configuratie nodig

mailer_smtp_oauth

SMTP OAuth Email

airflow.providers.mailer.hooks.smtp_oauth.MailerSmtpOAuthHook

Operator

EmailOperator (airflow.providers.mailer.operators.email.EmailOperator)

Verstuurt een e-mail als DAG-taak. subject en html_content zijn Jinja-getemplate; html_content accepteert ook een pad naar een .html-bestand, dat automatisch wordt geladen en getemplate. mailer_conn_id bepaalt via welk van de drie bovenstaande connectietypes wordt verstuurd (standaard smtp_default). Ondersteunt to/cc/bcc (str of list), files (bijlagen), en werkt zoals elke andere operator met trigger_rule voor failure-notificatietaken.

Gebruik

from airflow.providers.mailer.operators.email import EmailOperator

notify = EmailOperator(
    task_id="notify",
    to=["alice@example.com", "bob@example.com"],
    cc="manager@example.com",
    subject="Pipeline done — {{ ds }}",
    html_content="<p>Run {{ run_id }} completed.</p>",
)

on_failure = EmailOperator(
    task_id="on_failure_email",
    to="oncall@example.com",
    subject="[FAILED] ETL pipeline — {{ ds }}",
    html_content="<p>Task {{ task_instance.task_id }} failed on {{ ds }}.</p>",
    trigger_rule="one_failed",
    mailer_conn_id="mailer_graph_default",
)