2011-07-16 40 views
5

用下面的Ruby代碼,我可以通過IMAP收件箱中讀取用戶的郵件:如何使用Ruby歸檔消息`網/ imap`

require 'net/imap' 
imap = Net::IMAP.new('imap.gmail.com',993,true) 
imap.login('user','passwd') 
imap.select('INBOX') 
mailIds = imap.search(['ALL']) 
mailIds.each do |id| 
    msg = imap.fetch(id,'RFC822')[0].attr['RFC822'] 
    puts msg 
end 
imap.logout() 
imap.disconnect() 

我想知道我怎麼可以存檔和標誌閱讀電子郵件。我想將電子郵件從用戶的收件箱中移出。

回答

5

使用store method

require 'net/imap' 
imap = Net::IMAP.new('imap.gmail.com', 993, true) 
imap.login('user', 'passwd') 
imap.select('INBOX') 
mailIds = imap.search(['ALL']) 
mailIds.each do |id| 
    msg = imap.fetch(id, 'RFC822')[0].attr['RFC822'] 
    puts msg 
    imap.store(id, "+FLAGS", [:Seen]) 
end 
imap.logout() 
imap.disconnect() 
+1

這似乎並不在Gmail上盒的工作:在只讀文件夾(失敗)STORE嘗試 – artagnon

+0

你有明確選擇一個文件夾?直到我在那裏添加文件夾選擇(imap.select'INBOX'),它才起作用 – JakubM