2011-05-30 48 views
1

我試圖從最後保存的消息文件夾ID開始獲取新消息。紅寶石/ IMAP從最後保存的消息開始獲取消息uid

這裏是我到目前爲止的代碼:

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

我從IMAP服務器獲取唯一的反應是: 錯誤由服務器接收IMAP命令。

那麼,有沒有人知道ruby imap庫的正確「語法」來獲得uid?

問候,亞歷克斯

回答

0

解決方案通過它得到一個文件夾中的所有郵件的UID和保存它的SeqNo(這是一個IMAP場):

imap_connection.uid_search("ALL") 

爲獲得使用最後一次保存的新郵件搜索的SeqNo:

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

通過上次保存的UID搜索並沒有爲我工作,所以我用最後一次保存的SeqNo瞧。

2

在某個最後提取的UID之後獲取所有消息對我有用。

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

+0

我嘗試這樣做,它給我的錯誤:網:: IMAP :: BadResponseError:無法解析命令 – Donato 2016-09-29 16:57:27

+0

使用到位MAX_UID的數量,而不是*嘗試 – 2016-10-06 10:15:50