Retrieving e-mail from a gmail label

M

Michael Maag

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,756
Messages
2,569,540
Members
45,025
Latest member
KetoRushACVFitness

Latest Threads

Top