Retrieve Gmail using Ruby

I need to retrieve emails from my Gmail account using Ruby on Rails. I'm currently using this piece of code, but it gives me a timeout error everytime.

require 'net/pop'

pop = Net::POP3.new 'mail.isp.com' pop.start 'username@isp.com', 'password'

if pop.mails.empty?    puts "No mail." else    puts "You have #{pop.mails.length} new messages."    puts "Downloading..."

   pop.mails.each_with_index do|m,i|    File.open( "inbox/#{i}", 'w+' ) do|f|    f.write m.pop end

   m.delete end end

This is the error I recieve

/usr/lib/ruby/1.8/timeout.rb:60:in `new': execution expired (Timeout::Error)     from /usr/lib/ruby/1.8/net/protocol.rb:206:in `old_open'     from /usr/lib/ruby/1.8/net/protocol.rb:206:in `old_open'     from /usr/lib/ruby/1.8/net/pop.rb:438:in `do_start'     from /usr/lib/ruby/1.8/net/pop.rb:432:in `start'     from script/mail.rb:4

Any help will be appreciated!

Have you tried

pop = Net::POP3.new 'pop.gmail.com'

Christophe

Christophe Decaux wrote:

Have you tried

pop = Net::POP3.new 'pop.gmail.com'

Christophe

Le 19 avr. 2010 � 12:48, Shreyas Satish a �crit :

Tried it.Ain't working.

Try SSL?

Larry

I’ve used Fetcher plugin for that. Worked for me

http://github.com/look/fetcher

=begin Tested with ruby 1.8.7 on a Debian machine, with my own gmail account. ruby -rubygems "from name" "from email" "to name" "to email" "subject" "body" =end require 'net/smtp' require 'tlsmail'

Net::SMTP.enable_tls OpenSSL::SSL::VERIFY_NONE

$SERVER = 'smtp.gmail.com' $PORT = '587' $DOMAIN = 'loclahost'#HELO domain $USERNAME = 'username' $PASSWORD = 'password'

from_name = ARGV[0] from_email = ARGV[1] to_name = ARGV[2] to_email = ARGV[3] subject = ARGV[4] body = ARGV[5]

msg = <<EOF