【问题标题】:Ruby/IMAP getting messages starting from the last saved mesage uidRuby/IMAP 从最后保存的消息 uid 开始获取消息
【发布时间】:2011-09-04 21:02:48
【问题描述】:

我正在尝试从文件夹最后保存的消息 ID 开始获取新消息。

到目前为止,这是我的代码:

self.imap_connection.examine(folder)
imap_query = "UID SEARCH #{last_uid}:*"
messages = self.imap_connection.search(imap_query)

我从 IMAP 服务器得到的唯一响应是: 服务器收到的 IMAP 命令出错。

那么,有人知道 ruby​​ imap 库获取 uid 的正确“语法”吗??

问候,亚历克斯

【问题讨论】:

    标签: ruby imap uid


    【解决方案1】:

    在某个最后获取的 UID 之后获取所有消息对我有用。

    imap_connection.uid_search(["UID", "#{last_fetched_uid + 1}:#{MAX_UID}"])

    【讨论】:

    • 我试过了,它给了我错误:Net::IMAP::BadResponseError: Could not parse command
    • 尝试使用数字代替 * 代替 MAX_UID
    【解决方案2】:

    解决方案是通过它的uid获取文件夹的所有消息并保存它的seqno(它是一个imap字段):

    imap_connection.uid_search("ALL") 
    

    使用上次保存的 seqno 获取新邮件搜索:

    imap_connection.uid_search("#{seqno.to_i}:*")
    

    通过最后保存的 uid 搜索对我来说不起作用,所以我使用了最后保存的 seqno 和瞧。

    【讨论】:

      猜你喜欢
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 2018-07-06
      • 2015-09-21
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      相关资源
      最近更新 更多