首页 > 解决方案 > 通过 Airflow 提取电子邮件内容

问题描述

有没有办法可以从电子邮件中提取以下信息:

  1. 主题
  2. 发件人
  3. 接收者
  4. 时间戳

根据抄送的电子邮件搜索电子邮件。电子邮件是gmail.

我已经阅读了这篇文章,但这是为了下载附件。

我只需要上面的信息。然后存放在 BQ 中。我怎样才能做到这一点?

到目前为止,这就是我所做的:

from airflow.operators import IMAPAttachmentOperator

extract_email = IMAPAttachmentOperator(
    imap_conn_id='my_email_conn',
    mailbox='inbox',
    search_criteria={"CC": "some_email@gmail.com"},
    task_id='extract_email_content',
    dag=dag)

标签: pythongoogle-bigqueryairflowgmail-api

解决方案


据我所知,没有现成的运营商,所以你需要建立自己的。好的一面是,Airflow 中似乎有足够的逻辑可以重用或用作指导。例如,IMapHook中的这里是获取电子邮件的逻辑,然后您可以在运算符中过滤它们。其他选项是使用search,例如IMapHook().mail_client.search(...),参考搜索文档

关于在 BQ 中存储信息 - 使用BigQueryHook.insert_rows构建您的自定义运算符以将所需信息保存到 BQ 。

您可以使用也可以使用GCSHook.upload将数据上传到 GCS,然后使用GCSToBigQueryOperator


推荐阅读