1

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

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

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

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

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

问候,亚历克斯

4

2 回答 2

2

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

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

于 2015-10-09T09:15:45.773 回答
0

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

imap_connection.uid_search("ALL") 

使用最后保存的 seqno 获取新邮件搜索:

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

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

于 2011-05-31T09:54:49.777 回答