批量获取消息性能

2024-04-01

我需要获取收件箱中的最后 100 条消息(仅限标题)。为此,我目前正在使用 IMAP 扩展来搜索并获取消息。这是通过两个请求完成的(SEARCH进而UID FETCH).
Gmail API 相当于在一个请求中获取多封邮件的功能是什么?
我能找到的只是一个批处理API,这看起来更麻烦(组成一长串messages:get请求封装在纯 HTTP 代码中)。


Gmail API 中的内容与 IMAP 中的内容几乎相同。两个请求:第一个是 messages.list 来获取消息 id。然后(批量)message.get 来检索您想要的消息。根据您使用的语言,客户端库可能有助于批量请求构建。

批量请求是包含多个 Google Cloud Storage JSON API 调用的单个标准 HTTP 请求,使用多部分/混合内容类型。在该主 HTTP 请求中,每个部分都包含一个嵌套的 HTTP 请求。

From: https://developers.google.com/storage/docs/json_api/v1/how-tos/batch https://developers.google.com/storage/docs/json_api/v1/how-tos/batch

这实际上并不难,即使没有 python 客户端库(仅使用 httplib 和 mimelib),我也花了大约一个小时在 python 中弄清楚它。

这是执行此操作的部分代码片段,再次使用直接 python。希望它能清楚地表明,没有涉及太多:

msg_ids = [msg['id'] for msg in body['messages']]
headers['Content-Type'] = 'multipart/mixed; boundary=%s' % self.BOUNDARY

post_body = []
for msg_id in msg_ids:
  post_body.append(
    "--%s\n"
    "Content-Type: application/http\n\n"
    "GET /gmail/v1/users/me/messages/%s?format=raw\n"
    % (self.BOUNDARY, msg_id))
post_body.append("--%s--\n" % self.BOUNDARY)
post = '\n'.join(post_body)
(headers, body) = _conn.request(
    SERVER_URL + '/batch',
    method='POST', body=post, headers=headers)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批量获取消息性能 的相关文章

  • 如何在 Gmail 邮件到达时对其进行编辑?

    最终我的目标是通过带有唯一链接的自动加载图像来防止电子邮件跟踪 我知道Google 使用代理来加载图像所以至少他们不会透露我的 IP 地址 但有些个人和组织会烦人地将跟踪器嵌入到他们的电子邮件中 并且他们会主动检查我是否阅读了他们的电子邮件
  • Python:Google API - 从消息中获取 mimeTypes

    我的目标是使用 Google API 从我指定的电子邮件中获取数据 目前我可以找到消息 获取消息数据并将消息数据解码为可读格式 之后我需要找到消息的正确部分 输入text html 然后使用扫描我的链接美丽的汤 不幸的是 我对电子邮件 Go
  • 新 Gmail API 中的 RFC822 Message-Id

    我们尝试在使用 gmail api 发送电子邮件时手动设置 RFC822 Message Id 我们已经进行了测试 但发现 Gmail 超越了我们的价值 您知道这是否有原因吗 我们可以为此做点什么吗 是的 邮件发送的 Message Id
  • 客户端未经授权使用此方法检索访问令牌 Gmail API C#

    当我尝试使用服务帐户授权 gmail api 时 出现以下错误 客户端无权使用此方法检索访问令牌 static async Task MainAsync sstageEntities db new sstageEntities UserCr
  • Gmail API:如何获取访问令牌?

    我正在测试邮箱API https developers google com gmail api 到目前为止我已经做了以下事情 我已经在中创建了该项目谷歌开发者控制台 https console developers google com
  • gmail api 对于特定标签返回总邮件数为 0

    我一直在使用 获取标签 API 来获取特定标签的详细信息 直到最后几天一切都正常 我现在观察到 消息总数 计数始终为 0 未读消息 计数正确显示 我已经在我的应用程序中使用了它 并且也尝试过https developers google c
  • 从 gmail-api 获取发件人电子邮件

    我正在使用 gmail api 但无法获取发件人的电子邮件 我说的是电子邮件的 完整 格式 我认为发件人的电子邮件实际上是使用 gmail 的网络界面写在 发件人 字段中的电子邮件 这种完整格式的标头通常包括 X Original Auth
  • Gmail API 返回 403 错误代码和“<用户电子邮件> 的委派被拒绝”

    检索邮件时 一个域的 Gmail API 失败并出现以下错误 com google api client googleapis json GoogleJsonResponseException 403 OK code 403 errors
  • 谷歌应用程序脚本 - Gmail - 通过过滤器返回消息(不是线程)

    我为特定的传入电子邮件分配了不同的标签 并且在设置中禁用了线程 对话视图 我可以在网络应用程序中输入搜索 返回我想要的特定消息 例如 标签 customer01 标签 报告 然而 使用与 API 完全相同的过滤器会返回线程以及 Google
  • 如何使用 gmail api 和 chrome 扩展将 gmail 保存为 .eml 文件? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是 gmail api 的新手 正在开发 chrome 扩展 它将选定的电子邮件保存为 eml 或 msg 文件 我已成功获取当前
  • Gmail API 配额单位费用

    我们正在构建一项利用 Gmail API 的服务 为了了解我们在扩展过程中的成本 我想知道使用 Gmail API 的成本是多少 我已按照以下说明进行操作https developers google com gmail api v1 re
  • 如何向多个收件人发送消息?

    我在使用 Gmail API 向多个地址发送邮件时遇到一些问题 我已成功将一封邮件仅发送到一个地址 但当我在邮件中包含多个以逗号分隔的地址时 出现以下错误 To field 请求时发生错误 https www googleapis com
  • 使用 Google 脚本永久删除我的电子邮件的脚本

    Gmail Users Messages remove userId id 是如何工作的 电子邮件的 ID 是什么 永久删除电子邮件的正确功能是什么 就我而言 我想立即明确地删除所有已发送的电子邮件 这是我从某人那里获取的一些代码 只是带有
  • 从 Chrome 扩展程序访问 GMail API? 403 禁忌

    我有一个应用程序 可以通过此处概述的工作流程从 Chrome 扩展程序访问 Google API Chrome 扩展 OAuth 教程 https developer chrome com extensions tut oauth 工作流程
  • 禁用 Google 同意屏幕上的复选框

    我们正在使用 Gmail NET SDK 实现 Gmail 发送 ASP NET Web 应用程序 为此 我们需要以下所有范围 电子邮件 个人资料 openid https www googleapis com auth gmail sen
  • 400 错误。需要收件人地址。卷曲

    我将 Gmail API 与curl一起使用 用户 消息 发送 https developers google com gmail api v1 reference users messages send 但我收到错误 400 需要收件人地
  • 使用 jQuery 的 $.get 和 GMail API 时出现 401(未经授权)错误

    我试图在用户使用 javascript 使用 G API 登录后运行 jQuery 的 get 但在浏览器控制台中收到 401 未经授权 错误 这是我请求的 url 的格式 https www googleapis com gmail v1
  • Nodemailer发送日历事件并将其添加到谷歌日历

    我正在尝试使用 nodemailer 将日历事件发送到 Gmail 帐户 这是我的代码 let transporter nodemailer createTransport host smtp gmail com port 587 secu
  • Delphi - Indy - 保存 GMail 草稿

    我一直在 Delphi 下使用 Indy 通过 gmail 帐户发送消息 使用 TIdSMTP 和 TIdMessage 组件 这绝对没问题 但是 我的客户请求将消息保存到 DRAFTS 文件夹 以便他在实际发送消息之前对 以编程方式创建的
  • GMAIL:如果我知道其 ID,如何在新窗口中打开现有电子邮件?

    简而言之 如果我知道新窗口中的电子邮件 ID 如何在 Gmail 中打开电子邮件 问候 我从 GMAIL API 获取所需电子邮件的 ID 我希望它在单独的窗口中打开 例如 通过单击我的附加组件 我知道的 使用 JavaScript 代码做

随机推荐

  • 相对路径不适用于 css 中的图像

    我有以下文件结构 C wamp myproject admin webroot images 我有一个位于 admin 文件夹内的 index php 文件 它调用位于同一文件夹中的 header inc php 文件 header inc
  • 将 MySQL 连接到 Visual Studio C#

    我正在尝试编写数据访问代码以将 MySQL 连接到 Visual Studio 到目前为止我有这段代码 但我不知道它是否正确 我正在使用我的书 并注释掉了一些其他内容 但是当我包含注释掉的信息时 我收到了错误 public static M
  • python中最好/最容易使用的加密库是什么[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想使用 python 加密几个文件
  • ReactiveMongo 是如何实现的,使其被认为是非阻塞的?

    阅读有关 Play Framework 和 ReactiveMongo 的文档让我相信 ReactiveMongo 的工作方式是使用很少的线程并且从不阻塞 然而 从 Play 应用程序到 Mongo 服务器的通信似乎必须发生在某处的一些线程
  • jQuery 模板 - 在模板内执行 JS 代码

    我正在尝试了解有关 jQuery 模板的更多信息 但似乎无法在模板内执行任何 JS 调用 请注意 我的 objectToString 函数从未被调用 只是呈现为字符串 我一时兴起尝试将其包装在 中 但没有成功 有谁可以帮忙吗 安东尼 你可以
  • 如何使用另一个模式的表编写存储过程?

    为了调用Oracle的函数和过程 表必须在HR用户中吗 当我从另一个用户运行函数时 它给我一个编译错误 对于我的项目 我想从另一个用户运行函数和过程 我该如何实施 要使用另一个模式中的表编写函数或过程 表所有者需要授予我们所需的权限 例如
  • 一个人可以在 Magento 社区版上托管多个商店吗?

    一个人可以在 Magento 社区版上托管多个商店吗 以及如何在设置每个新商店时自动为其创建子域 是的 您可以从 Magento 社区版运行多个站点 Magento 官方博客实际上刚刚发布了一篇关于此问题的帖子 您可能想查看一下 http
  • 我尝试实施 UPSERT 时出现问题

    我在检查更新 PostgreSQL 中的表的条件时遇到此问题 它必须检查用户是否下载过一次 如果是 则添加 1acessos
  • 如何从任何地方获取上下文? [复制]

    这个问题在这里已经有答案了 在Android中 有什么方法可以静态获取应用程序的上下文吗 例如从后台线程检索它 Thanks 最简单 也是正确 的方法是 定义一个新类 public class MyApp extends Applicati
  • hibernate查询语言还是使用条件?

    任何人告诉我使用 criteria hql sql 进行查询 要求是用户输入电子邮件或用户名 查询返回密码 来自表用户的用户 Criteria API 非常适合动态查询生成 并且是我的首选 你可以这样做 Criteria criteria
  • Git/Mercurial (hg) 意见 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 首先声明 我不是一个专业的程序员 而是一个有需要并且必须学习的工程师 我总是独自工作 所以只有我和我的七个分裂人格 我们作为一个团队工
  • 如何使用struts 2标签比较列表元素(字符串类型)和字符串(在请求范围内)

    我的列表包含 A B C D 元素
  • 如何监听 Firebase 中的特定值变化?

    My data structure is the following compliments received uid complimentId 我想听听有关恭维 已收到 uid complimentId updatedAt 的更改 我的代
  • 如何使JComboBox表格编辑器具有普通JComboBox的设计?

    我有一个JComboBox用作编辑器JTable 在图片中 您可以在标记的列中看到它们Produs 我想使用独立的设计JComboBox在网格单元中 特别是组合框的右侧部分 其中网格单元中缺少三角形 因此用户无需单击其中之一即可知道网格单元
  • 如何从具有相同签名的方法或扩展函数调用顶级函数?

    我使用科特林1 1 2 2 我想调用顶层函数plus100 Int Int从方法Mul2 plus100 Int Int 我尝试在下面的代码中执行此操作 但实际上Mul2 plus100本身被称为 class Mul2 fun plus10
  • Objective-C 属性表达式的地址

    我需要财产的访问地址 但有问题 示例代码是 interface Rectangle NSObject SDL Rect wall SDL Rect ground property SDL Rect wall property SDL Rec
  • WidgetKit @StateObject 不更新视图

    我无法理解如何让我的SwiftUI数据模型示例与我的小部件一起使用 它在我的测试应用程序中运行得很好 我立即观察到变化 当我尝试使用小部件时 我可以看到控制台中打印的数据 但我的中没有发生任何变化View in WidgetKit 我正在使
  • 错误:列表类型不带参数

    尽管它与示例中使用的完全相同 但我收到以下错误 错误 列表类型不带参数 List
  • NODEJS writeStream 错误

    var http require http var fs require fs createWriteStream file1 http createServer function req res This opens up the wri
  • 批量获取消息性能

    我需要获取收件箱中的最后 100 条消息 仅限标题 为此 我目前正在使用 IMAP 扩展来搜索并获取消息 这是通过两个请求完成的 SEARCH进而UID FETCH Gmail API 相当于在一个请求中获取多封邮件的功能是什么 我能找到的