2011-07-16 32 views
5

Với mã ruby ​​sau, tôi có thể đọc thư của người dùng trong một hộp thư qua IMAP:Làm thế nào để lưu trữ thư sử dụng ruby ​​'net/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() 

Tôi muốn biết làm thế nào tôi có thể lưu trữ và đánh dấu đọc email. Tôi muốn di chuyển email ra khỏi hộp thư đến của người dùng.

Trả lời

5

Sử dụng 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

này dường như không làm việc trên hộp GMail: nỗ lực CỬA HÀNG trên Read-only thư mục (Failure) – artagnon

+0

Bạn đã chọn một cách rõ ràng một thư mục? Nó không làm việc cho tôi cho đến khi tôi thêm vào lựa chọn thư mục ở đó (imap.select 'INBOX') – JakubM

Các vấn đề liên quan