From: ts Date: 2003-08-21T00:03:45+09:00 Subject: Re: socket emergency >>>>> "S" == Shannon Fang writes: S> It hangs here. Have you tried with the module 'net/pop' to see if it do the same ? === Enshort Code The example above is very verbose. You can enshort code by using some utility methods. At first, block form of Net::POP3.start can alternates POP3.new, POP3#start and POP3#finish. require 'net/pop' Net::POP3.start('pop.example.com', 110, 'YourAccount', 'YourPassword') {|pop| if pop.mails.empty? puts 'no mail.' else i = 0 pop.each_mail do |m| # or "pop.mails.each ..." File.open("inbox/#{i}", 'w') {|f| f.write m.pop } m.delete i += 1 end puts "#{pop.mails.size} mails popped." end } Guy Decoux