Ruby / IMAP从上次保存的消息uid开始获取消息

时间:2011-05-30 14:36:24

标签: ruby imap uid

我正在尝试从上次保存的文件夹的消息ID开始收到新消息。

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

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

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

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

此致,Alex

2 个答案:

答案 0 :(得分:2)

在上次获取的UID之后获取所有消息对我有效。

  

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

答案 1 :(得分:0)

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

imap_connection.uid_search("ALL") 

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

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

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