从 Gmail 检索所有电子邮件我做了但只有 3000 封电子邮件不是全部

从Gmail提取所有电子邮件的方法是什么?


我做到了full_sync,但这并没有返回我的所有电子邮件-仅约3000封电子邮件,尽管我知道我还有更多。他们在文档中没有提到这一点。


我的代码片段:


    history = service.users().history().list(

        userId='me',

        startHistoryId=start_history_id,

        maxResults=500,

        labelId='INBOX'

    ).execute()

    if "history" in history:

        try:

            for message in history["history"]:

                   batch.add(

                    service.users().messages().get(userId='me', id=message["messages"][0]["id"]),

                    callback="somecallbak",

                    request_id=request_id

                )

            batch.execute()

    while 'nextPageToken' in history:


桃花长相依
浏览 162回答 2
2回答

繁花如伊

根据此链接的建议,您可以使用批处理请求。使用批处理并一次请求100条消息。您将需要发出 1000 个请求,但好消息是这很好,而且对每个人来说都更容易(不要在单个请求中下载 1GB 响应!)。同样基于此线程,您可以在每个请求上保存下一个页面令牌,并在下一个请求中使用它。如果响应中没有下一页标记,则说明您已收到所有消息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python