airflow.providers.imap.hooks.imap¶
此模块提供了搜索具有特定附件的邮件并下载所需的一切功能。
它使用了已集成在 Python 3 中的 imaplib 库。
类¶
此 Hook 使用 IMAP 协议连接到邮件服务器。 |
|
此类简化了处理 imaplib 客户端返回的邮件。 |
|
此类是 Mail 对象部分的包装器,为其提供了更多功能。 |
模块内容¶
- class airflow.providers.imap.hooks.imap.ImapHook(imap_conn_id=default_conn_name)[source]¶
基类:
airflow.hooks.base.BaseHook
此 Hook 使用 IMAP 协议连接到邮件服务器。
注意
请使用 with 将此 Hook 作为上下文管理器调用,以自动打开和关闭与邮件服务器的连接。
- 参数:
imap_conn_id (str) – 包含用于客户端认证信息的 IMAP 连接 ID。
- mail_client: imaplib.IMAP4_SSL | imaplib.IMAP4 | None = None[source]¶
- get_conn()[source]¶
登录到邮件服务器。
注意
请使用 with 将此 Hook 作为上下文管理器调用,以自动打开和关闭与邮件服务器的连接。
- 返回:
一个已授权的 ImapHook 对象。
- 返回类型:
- has_mail_attachment(name, *, check_regex=False, mail_folder='INBOX', mail_filter='All')[source]¶
检查邮件文件夹中是否包含带有给定名称的附件的邮件。
- retrieve_mail_attachments(name, *, check_regex=False, latest_only=False, mail_folder='INBOX', mail_filter='All', not_found_mode='raise')[source]¶
根据附件名称在邮件文件夹中检索邮件附件。
- 参数:
name (str) – 将要下载的附件名称。
check_regex (bool) – 检查名称是否为正则表达式。
latest_only (bool) – 如果设置为 True,则只检索第一个匹配的附件。
mail_folder (str) – 要查看的邮件文件夹。
mail_filter (str) – 如果设置为 'All' 之外的值,则只检查特定的邮件。详情请参阅
imaplib.IMAP4.search()
。not_found_mode (str) – 指定未找到附件时应执行的操作。支持的值为 'raise'(引发异常)、'warn'(仅打印警告)和 'ignore'(不进行任何通知)。
- 返回:
一个元组列表,每个元组包含附件文件名及其内容。
- 返回类型:
- download_mail_attachments(name, local_output_directory, *, check_regex=False, latest_only=False, mail_folder='INBOX', mail_filter='All', not_found_mode='raise')[source]¶
根据附件名称将邮件文件夹中的邮件附件下载到本地目录。
- 参数:
name (str) – 将要下载的附件名称。
local_output_directory (str) – 文件将下载到的本地机器上的输出目录。
check_regex (bool) – 检查名称是否为正则表达式。
latest_only (bool) – 如果设置为 True,则只下载第一个匹配的附件。
mail_folder (str) – 要查看的邮件文件夹。
mail_filter (str) – 如果设置为 'All' 之外的值,则只检查特定的邮件。详情请参阅
imaplib.IMAP4.search()
。not_found_mode (str) – 指定未找到附件时应执行的操作。支持的值为 'raise'(引发异常)、'warn'(仅打印警告)和 'ignore'(不进行任何通知)。
- class airflow.providers.imap.hooks.imap.Mail(mail_body)[source]¶
基类:
airflow.utils.log.logging_mixin.LoggingMixin
此类简化了处理 imaplib 客户端返回的邮件。
- 参数:
mail_body (str) – 从 imaplib 客户端接收到的邮件正文。