Retrieving e-mail from a gmail label

I’m trying to download all the e-mails under a particular label in a
g-mail account. Using net/imap I am able to pull parts of e-mails
(header, body, subject, etc) from a specific label by using:

require ‘rubygems’
require ‘net/imap’
require ‘tmail’

username = ‘username’
password = ‘password’
gmail_label = ‘Books’

imap = Net::IMAP.new(‘imap.gmail.com’, port = 993, true, nil, false)
imap.login(username,password)
imap.select(gmail_label)
imap.search([“NOT”, “DELETED”]).each do |m|
envelope = imap.fetch(m, “ENVELOPE”)[0].attr[‘ENVELOPE’]
puts “#{envelope.from[0].name}: \t#{envelope.subject}”
puts imap.fetch(m, “BODY[TEXT]”)

end
imap.logout()
imap.disconnect()

However, when I print the body portion, it prints with newline and
return characters etc. What I am after is a clean version of the body.
Is there a method that returns the entire e-mail as a string? If so I
can use TMail to parse it. Alternatively, does TMail have a method to
parse just the body?

Thanks.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs