【问题标题】:gmail api: get latest 2 emails from threadgmail api:从线程获取最新的 2 封电子邮件
【发布时间】:2020-11-09 16:55:16
【问题描述】:

下面的代码检索线程中的最新电子邮件。如何检索线程中最新的 2 封电子邮件?提前致谢。

messages = service.users().threads().list(userId='me').execute().get('threads', [])

for message in messages:
    if search in message['snippet']:
        # add/modify the following lines:
        thread = service.users().threads().get(userId='me', id=message['id'], fields='messages(id,internalDate)').execute() #.get( [])
        last = len(thread['messages']) - 1
        message_id = thread['messages'][last]['id']

        # non-modified code:
        full_message = service.users().messages().get(userId='me', id=message_id, format="raw").execute()
        msg_str = base64.urlsafe_b64decode(full_message['raw'].encode('ASCII'))
        mime_msg = email.message_from_bytes(msg_str)
        y = re.findall(r'Delivered-To: (\S+)', str(mime_msg))
        print(y[0])

【问题讨论】:

    标签: python gmail-api


    【解决方案1】:
    • last = len(thread['messages']) - 1 行指定您要从线程中检索最后一条消息
    • 因此,要检索最后一条消息,您需要指定prelast = len(thread['messages']) - 2
    • 分别是prelast_message_id = thread['messages'][prelast]['id']
    • 现在,您可以将 lastprelast 消息 ID 推送到一个数组中,并在 for 循环中对这两个消息 ID 执行 # non-modified code

    【讨论】:

      猜你喜欢
      • 2021-02-14
      • 2018-08-25
      • 2018-01-30
      • 2016-10-27
      • 2014-09-07
      • 1970-01-01
      • 2016-02-29
      • 2016-01-09
      • 2014-08-19
      相关资源
      最近更新 更多