GMail 线程、IMAP 和 Ruby

2024-03-26

我正在使用 Ruby IMAP 库来获取 GMail 对话。 GMail 线程对话的方式是通过“Message-ID”和“In-Reply-To”消息标头。例如:

In-Reply-To: <[email protected] /cdn-cgi/l/email-protection>
Message-ID: <[email protected] /cdn-cgi/l/email-protection>

我不知道如何有效地获取回复的消息。目前的方式:

target = <[email protected] /cdn-cgi/l/email-protection>
imap.search(["NOT", "DELETED"]).each do |msg_id|
  uid = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"].message_id
  if uid == target
    m = imap.fetch(msg_id, "RFC822")[0].attr["RFC822"]
  end
end

像这样按顺序执行需要花费很长时间,但我无法找出通过 Message-ID 标头进行搜索的正确咒语,并且我无法真正找到任何证据来证明这是否可能。


显然,正确的方法是:

imap.search ["HEADER", "MESSAGE-ID", target]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GMail 线程、IMAP 和 Ruby 的相关文章

  • RMagick 安装无法构建本机扩展

    在 Mountain Lion 上 我尝试安装 RMagick 我找到了一个GitHub 上的问题 https github com mroth lolcommits issues 56解决方案应该是命令gem pristine rmagi
  • 使用 %w[] 创建包含空字符串的数组

    创建包含空字符串的数组 a b c 不是一个空格字符串 使用 W我可以用 W a b c 我也可以连接数组 但是是否可以使用空字符串创建数组 w 几个选项 W a b c z W a b c lt lt 我知道这没有使用 w 语法 但为了更
  • 哪个版本的 ruby​​ bug 较少?

    我最近编写了一些复杂的 ruby 脚本 最终会在随机时间和随机位置因段错误而失败 例如 nokogiri mechanize inov 超时 我在 Windows 7 下的 1 9 1 p 129 1 8 6 p 369 和 ubuntu
  • Ruby - 乘法问题

    我的输出是这样的 ruby 1 9 2 p290 011 gt 2 32 3 gt 6 959999999999999 我记得有一天在另一台机器上我得到了它就像 2 32 3 6 我的错误是什么 非常感谢您阅读本文 如果您确实想向下舍入为整
  • Ruby—Open3.popen3 / 如何打印输出

    我有一个小红宝石脚本 它的作用是mysql导入方式 mysql u
  • Rails 4.0 expire_fragment/缓存过期不起作用

    我一直在尝试使用 Rails 的缓存功能 但我无法使某些缓存片段过期 尽管它们似乎已过期 使用 Rails 教程网站中指出的 Russian Doll Caching 我正在使用此配置 我使release controller rb 控制器
  • python:发送邮件,在“with”块内时失败

    我想知道为什么这段代码 test smtplib SMTP smtp gmail com 587 test ehlo test starttls test ehlo test login address passw test sendmai
  • 在 Ruby 中从一个数组减去另一个数组

    我有两个任务数组 创建和分配 我想从创建的任务数组中删除所有分配的任务 这是我的工作代码 但很混乱 assigned tasks user assigned tasks created tasks user created tasks Do
  • 使用 Assetic PHP 通过 RVM 安装后 Sass 损坏

    我正在尝试设置 Assetic PHP 资源编译器 并且它可以与 CoffeeScript Stylus 和 Less 一起使用 所有 NPM 包都运行良好 然而 对于 Sass 我遇到了问题 以下是我到目前为止所采取的步骤 我安装了 RV
  • 您将如何整理这个控制器逻辑?

    我在控制器中有一些逻辑 如果满足某些条件 它会设置对象的状态 if params concept consulted legal 0 params concept consulted marketing 1 concept attribut
  • 为什么我在安装 Rails 时会出现“写权限”错误?

    当我使用rvm use 1 9 2 我得到 Rails v3 0 0 vikas admin1 DL H61MXEL rvm use 1 9 2 default Using home vikas rvm gems ruby 1 9 2 p3
  • 安装 Sass 时出错(Ruby 2.5.0.1、MSYS2 20161025.0.0)

    我尝试安装 Sass 我安装了Ruby and MSYS2在此之前 来自所有人的最新消息巧克力味 https chocolatey org choco install ruby choco install msys2 看来它们已正确安装 r
  • RSpec 抛出分段错误

    有时我的测试套件会无缘无故地抛出分段错误 这是输出 Users Test rvm gems ruby 1 9 3 p392 gems activerecord 3 2 9 lib active record relation query m
  • 如何在启动 Rails 控制台时自动运行代码?

    假设每次 Rails 控制台出现时我都想要一个问候语 Scotts MBP 4 ucode scott rails c Loading development environment Rails 4 2 1 Hello there I m
  • 尝试从 Rails 控制器调用辅助方法时出现 NoMethodError

    我得到了一个NoMethodError当尝试从我的控制器类之一访问我的帮助器模块之一中定义的方法时 我的 Rails 应用程序使用helper类方法与 all符号如下图所示 class ApplicationController lt Ac
  • 如何将命令行参数传递给 rake 任务

    我有一个 rake 任务需要将一个值插入到多个数据库中 我想从命令行或从another耙任务 我怎样才能做到这一点 您可以通过向任务调用添加符号参数来指定 rake 中的形式参数 例如 require rake task my task a
  • 执行 rvm use 2.0.0 --default 时收到“警告!路径未正确设置”

    以上第一次不起作用 第二次起作用 尝试将任何新 shell 窗口的 ruby 版本设置为 2 0 0 Doing rvm use 2 0 0 default gives Warning PATH is not properly set up
  • 捆绑包 - 从另一台电脑复制粘贴宝石

    我正在尝试设置 Rails 应用程序 该应用程序依赖于大量的宝石 宝石已预先安装在vendor gems我从朋友那里获得的副本的文件夹 现在 考虑到那些闭源宝石的不可用性 bundle install path home umang pro
  • 如何保存包含框架/iframe 的完整 html 页面?

    在网页抓取期间 我想将当前页面的 html 保存到文件中以供以后调试 browser html在大多数情况下有帮助 但是当页面包含 iframe frame 时 它 的内容不会返回browser html 我必须用类似的东西单独得到它bro
  • 按顺序重载每个方法

    我有一个 erb 模板 它为 httpd conf 生成配置文件 重要的是 最后写入特定位置 它是包罗万象的 目前代码看起来像 cluster apps each do app Render config end 我想重载应用程序对象上的每

随机推荐

  • 谁能给我解释一下 C++ 异常规范吗?

    谁能解释一下 C 中使用的异常规范 它们什么时候使用 我很少看到它在代码中使用 使用异常规范的优点和缺点 优点 缺点 是什么 它们什么时候使用 我很少看到它在代码中使用 希望永远不会 因为它们在明年标准化的下一版本 C 中已被弃用 使用异常
  • 如何修复错误“您可能需要适当的加载程序来处理此文件类型”

    我有一个全新的 Laravel 安装 关于使用编译文件npm run dev VUE我收到文件错误 您可能需要适当的加载程序来处理此文件类型 当前没有配置加载程序来处理此文件 Laravel 版本 8 12 包 json devDepend
  • Facebook 评论镜像不起作用

    我一步一步做了这些 创建一个新的 Facebook 应用程序 应用程序 ID 544557495732050 创建一个新的 Facebook 页面 https www facebook com Pasha Electronic 502844
  • 每秒(或更短时间)检查 url 是否有效的最佳方法是什么,在 C# 窗口窗体应用程序 (.NET) 中使用 Task wait 或 ContinueWith

    我是 C Net 和 Visual Studio 2022 的新手 我想要实现的是每秒运行一个计时器来检查网站 url 是否有效 是否已启动 如果 url 可访问并且当前 WebView2 未显示该网站 那么它应该导航到该网站 如果它已经显
  • TypeScript 泛型:无效、从不或未定义? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 总是想知道这个问题 所以想要得到一个明确的答案并将其固定下来 我想做的是让编译器 语言服务 阅读器知道T应该什么都没有 空的 虚无 我想知道
  • 跨计算机快速同步 git 工作区

    我有一个使用 git 的个人项目 我经常在多台计算机上进行 hack 托管在 Github 上 因为我在家做这件事 所以经常被打扰 我正在发表声明 晚餐已经准备好了 否则我需要换尿布 当我重新开始编码时 我可能会使用另一台计算机 获取最新版
  • 如何在 iPhone 的自定义 UIView 上启用 UIDragInteraction

    我一直在尝试使用 Apple 的新 API 来启用自定义 UIView 上的拖动交互 我在使用 iPad 进行测试时成功地使其工作 但是当我在 iPhone 7 ios 11 beta 3 中运行相同的应用程序时 我无法拖动我的自定义 UI
  • SQL Server:将 bool 转换为整数

    为什么查询 SELECT CAST column LIKE string AS INT 100 return 关键字 AS 附近的语法不正确 因为 bool 不是 T SQL 中的类型 它不存在 布尔表达式不是位类型 他们不have类型 仅
  • 如何在 Polymer 1.0 中过滤铁列表?

    The dom repeat元素提供了一个filter属性 有没有类似的过滤方法iron list 例如 给定一个人员列表 我想过滤出生在特定城市的人 As iron list不幸的是不提供filter属性 没有声明性模式使这成为可能 您可
  • ActiveRecord:如何找到所有孩子都符合条件的父母?

    假设我有一个Parent模型有很多Child 然后Child也属于OtherParent 我怎样才能找到全部Parent其中所有的Child属于任何OtherParent 在纯 SQL 中我可以做 Parent find by sql lt
  • PySpark 可以使用 numpy 数组吗?

    我尝试在 pyspark 会话中执行以下命令 gt gt gt a 1 2 3 4 5 6 7 8 9 10 gt gt gt da sc parallelize a gt gt gt da reduce lambda a b a b 效果
  • 我的 onChange 不适用于反应

    我已经关注了这个文档 https facebook github io react docs forms html why select value并使用 React 创建了一个选择标签 我已经编辑了这个问题 如果我在选择中使用 class
  • 无法更新公司防火墙后面的 conda 软件包。更新了 .condarc 文件,代理设置仍然要求代理用户名和密码

    我位于公司防火墙后面 我正在尝试通过运行以下命令来更新 conda 软件包 conda update all 这是要求我提供代理用户名和密码 https proxy username https proxy username Passwor
  • 公开存储库的子集,同时保留历史记录

    我有一些受版本控制的代码 使用 Mercurial 并且想分享其中的一些代码 同时隐藏我无法发布到公共领域的其他部分 至少在现阶段 理想情况下 我希望保持公共代码的修订历史记录完整 更重要的是 能够在公共存储库和包含公共和私有代码的存储库之
  • 计算列表内列表之间的最小长度

    a 1 0 1 2 1 1 1 3111111 31 1 4 51 1 1 1 1 1 6 7 8 print min a 0 a 1 a 2 以下代码返回 1 0 1 2 1 1 1 3111111 不确定默认键是什么以及根据什么逻辑返回
  • 如何在购物篮中显示正确的税费(结账前)?

    我有一个简单的问题 我为不同国家设置了多种税率 但是 在购物篮页面上 当尚未访问结帐页面时 它会显示来自基准国家 地区的税费 就我而言 我在 AT 有一家商店 我已经为 AT 和 CH 设置了税费 如果用户使用瑞士 IP 进行访问 我会将国
  • 合并多个data.table

    我知道一个人可以合并 加入 两个data table与merge函数或 data table功能 然而 如果我说 10 data table并想要使用do call将它们全部合并在一起 是否有一个函数可以做到这一点 目前我求助于do cal
  • 覆盖 Object.toString 错误

    为什么这会在 Flash Builder 中产生错误 package public class Foo override public function toString String return Foo 制表符补全表明这可用于覆盖 错误
  • Silverlight 4 组合框下拉显示不一致

    我有一个 Silverlight 4 应用程序 在窗体底部附近有一个组合框 下拉列表中可以包含大约 30 到 100 个项目 当我第一次打开 ComboBox 时 没有 SelectedItem Dropdown 向上打开 大约有 23 个
  • GMail 线程、IMAP 和 Ruby

    我正在使用 Ruby IMAP 库来获取 GMail 对话 GMail 线程对话的方式是通过 Message ID 和 In Reply To 消息标头 例如 In Reply To lt email protected cdn cgi l