class XmlConv::Util::PopMission
Attributes
content_type[RW]
host[RW]
pass[RW]
port[RW]
user[RW]
Public Instance Methods
poll(&block)
click to toggle source
# File lib/xmlconv/util/polling_manager.rb, line 67 def poll(&block) # puts "PopMission starts polling host #{@host}:#{@port} u: #{@user} pw: #{@pass}" options = { :address => @host, :port => @port, :user_name => @user, :password => @pass, :enable_ssl => true } ::Mail.defaults do retriever_method :pop3, options end all_mails = ::Mail.delivery_method.is_a?(::Mail::TestMailer) ? ::Mail::TestMailer.deliveries : ::Mail.all all_mails.each do |mail| begin poll_message(mail, &block) ensure time = Time.now name = sprintf("%s.%s.%s", @user, time.strftime("%Y%m%d%H%M%S"), time.usec) FileUtils.mkdir_p(@backup_dir) path = File.join(@backup_dir, name) File.open(path, 'w') { |fh| fh.puts(mail) } mail.mark_for_delete = true # mail.delete # Not necessary with gem mail, as delete_after_find is set to true by default end end end
poll_message(message, &block)
click to toggle source
# File lib/xmlconv/util/polling_manager.rb, line 92 def poll_message(message, &block) if(message.multipart?) message.parts.each do |part| poll_message(part, &block) end elsif(/text\/xml/.match(message.content_type)) filtered_transaction(message.decoded, sprintf('pop3:%s@%s:%s', @user, @host, @port), &block) end end