airflow.providers.smtp.hooks.smtp

在邮件中搜索特定附件并下载。

它使用 smtplib 库,该库已集成到 Python 3 中。

SmtpHook

此 Hook 使用 SMTP 协议连接到邮件服务器。

模块内容

class airflow.providers.smtp.hooks.smtp.SmtpHook(smtp_conn_id=default_conn_name)[source]

基类: airflow.hooks.base.BaseHook

此 Hook 使用 SMTP 协议连接到邮件服务器。

注意

请使用 with 将此 Hook 作为上下文管理器调用,以自动打开和关闭与邮件服务器的连接。

参数:

smtp_conn_id (str) – smtp 连接 ID,包含用于验证客户端的信息。

conn_name_attr = 'smtp_conn_id'[source]
default_conn_name = 'smtp_default'[source]
conn_type = 'smtp'[source]
hook_name ='SMTP'[source]
smtp_conn_id = 'smtp_default'[source]
smtp_connection: airflow.models.connection.Connection | None = None[source]
smtp_client: smtplib.SMTP_SSL | smtplib.SMTP | None = None[source]
__enter__()[source]
__exit__(exc_type, exc_val, exc_tb)[source]
get_conn()[source]

登录到 smtp 服务器。

注意

请使用 with 将此 Hook 作为上下文管理器调用,以自动打开和关闭与 smtp 服务器的连接。

返回:

一个已授权的 SmtpHook 对象。

返回类型:

SmtpHook

classmethod get_connection_form_widgets()[source]

返回连接部件,用于添加到连接表单。

test_connection()[source]

从 UI 测试 SMTP 连接性。

send_email_smtp(*, to, subject=None, html_content=None, from_email=None, files=None, dryrun=False, cc=None, bcc=None, mime_subtype='mixed', mime_charset='utf-8', custom_headers=None, **kwargs)[source]

发送包含 HTML 内容的电子邮件。

参数:
  • to (str | collections.abc.Iterable[str]) – 收件人电子邮件地址或地址列表。

  • subject (str | None) – 电子邮件主题。如果为 None,hook 将检查连接中是否提供了指向主题文件的路径,如果未提供则抛出异常。

  • html_content (str | None) – HTML 格式的电子邮件正文。如果为 None,hook 将检查连接中是否提供了指向 html 内容文件的路径,如果未提供则抛出异常。

  • from_email (str | None) – 发件人电子邮件地址。如果为 None,hook 将检查连接中是否提供了电子邮件地址,如果未提供则抛出异常。

  • files (list[str] | None) – 要附加到电子邮件的文件路径列表。

  • dryrun (bool) – 如果为 True,则不会发送电子邮件,但会执行所有其他操作。

  • cc (str | collections.abc.Iterable[str] | None) – 抄送收件人电子邮件地址或地址列表。

  • bcc (str | collections.abc.Iterable[str] | None) – 密送收件人电子邮件地址或地址列表。

  • mime_subtype (str) – 电子邮件的 MIME 子类型。

  • mime_charset (str) – 电子邮件的 MIME 字符集。

  • custom_headers (dict[str, Any] | None) – 要包含在电子邮件中的自定义标头字典。

  • kwargs – 附加的关键字参数。

>>> send_email_smtp(
        'test@example.com', 'foo', '<b>Foo</b> bar', ['/dev/null'], dryrun=True
    )
property conn: airflow.models.connection.Connection[source]
property smtp_retry_limit: int[source]
property from_email: str | None[source]
property smtp_user: str[source]
property smtp_password: str[source]
property smtp_starttls: bool[source]
property host: str[source]
property port: int[source]
property timeout: int[source]
property use_ssl: bool[source]
property subject_template: str | None[source]
property html_content_template: str | None[source]
property ssl_context: str | None[source]
classmethod get_ui_field_behaviour()[source]

返回自定义字段行为。

此条目有帮助吗?