我正在尝试从上次保存的文件夹的消息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
答案 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。