GMail 邮件分组、IMAP 和 Ruby

9

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

In-Reply-To: <c0f07c940909151905w1ad93fabx19cf595f653c8b@mail.gmail.com>
Message-ID: <9cd2f5ff0909151911r30ddb805n5172970dffc872c2@mail.gmail.com>

我无法有效地获取被回复的消息。当前的方法:

target = <c0f07c940909151905w1ad93fabx19cf595f653c8b@mail.gmail.com>
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头搜索,也没有找到任何证据表明这是否可能。


RFC822.HEADER 只会获取头部信息。 - Daniel F
1个回答

12

显然,做到这一点的正确方法是:

imap.search ["HEADER", "MESSAGE-ID", target]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接