How to archive a message using ruby `net/imap`
With the following ruby code, I can read a user's mail in an inbox via 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()
开发者_C百科
I want to know how I can archive and mark read emails. I want to move the emails out of the user's inbox.
Use 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()
精彩评论