【问题标题】:Read All Emails In a Domain阅读域中的所有电子邮件
【发布时间】:2021-07-02 07:03:03
【问题描述】:

我想根据使用 API 的查询读取我域中的所有电子邮件。目前,我一次枚举一个用户并为其提取所有电子邮件

list(userId, includeSpamTrash=None, labelIds=None, maxResults=None, pageToken=None, q=None, x__xgafv=None)

这种方法不可扩展,因为在 1000 多个用户的情况下,它会花费大量时间。我想针对查询提取所有用户的电子邮件,但不枚举 userId

【问题讨论】:

    标签: python gmail-api google-workspace


    【解决方案1】:

    message.list 方法不返回完整的消息对象,它只返回消息 ID 和线程 ID。

    "messages": [
        {
          "id": "178a78eef21cc0fa",
          "threadId": "178a78eef21cc0fa"
        },
        {
          "id": "178a77fd677004b8",
          "threadId": "178a738e29b7812d"
        },
        {
          "id": "178a778d32097a98",
          "threadId": "178a738e29b7812d"
        },
    

    如果您想了解有关该消息的更多信息,则需要运行message.get,它会返回完整的message object

    我想我的意思是这种方法在您的情况下可能无法扩展,但它是您唯一的选择。

    您可以尝试对请求进行批处理,但我个人对batching 不太满意,您需要检查 Python 客户端库是否已更新以使用新的批处理端点我不确定他们是否已更新它。

    【讨论】:

    • 但我们仍然必须枚举所有用户。如果不枚举每个用户,我找不到任何直接获取域中所有用户的电子邮件的方法。
    • api 的工作方式是请求包含一个授权标头,该标头使请求可以访问用户数据。单个请求单个用户。您将永远不会为单个请求返回一个以上的用户数据。即使批处理也只会是单个用户数据。我了解您正在尝试做什么,但它在 Oauth2 领域内不可见
    猜你喜欢
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多