Class: XmlConv::Util::PopMission
- Defined in:
- lib/xmlconv/util/polling_manager.rb
Instance Attribute Summary collapse
-
#content_type ⇒ Object
Returns the value of attribute content_type.
-
#host ⇒ Object
Returns the value of attribute host.
-
#pass ⇒ Object
Returns the value of attribute pass.
-
#port ⇒ Object
Returns the value of attribute port.
-
#user ⇒ Object
Returns the value of attribute user.
Attributes inherited from Mission
#arguments, #backup_dir, #debug_recipients, #destination, #error_recipients, #filter, #partner, #postprocs, #reader, #tmp_destination, #writer
Instance Method Summary collapse
Methods inherited from Mission
#create_transaction, #filtered_transaction
Instance Attribute Details
#content_type ⇒ Object
Returns the value of attribute content_type.
66 67 68 |
# File 'lib/xmlconv/util/polling_manager.rb', line 66 def content_type @content_type end |
#host ⇒ Object
Returns the value of attribute host.
66 67 68 |
# File 'lib/xmlconv/util/polling_manager.rb', line 66 def host @host end |
#pass ⇒ Object
Returns the value of attribute pass.
66 67 68 |
# File 'lib/xmlconv/util/polling_manager.rb', line 66 def pass @pass end |
#port ⇒ Object
Returns the value of attribute port.
66 67 68 |
# File 'lib/xmlconv/util/polling_manager.rb', line 66 def port @port end |
#user ⇒ Object
Returns the value of attribute user.
66 67 68 |
# File 'lib/xmlconv/util/polling_manager.rb', line 66 def user @user end |
Instance Method Details
#poll(&block) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/xmlconv/util/polling_manager.rb', line 67 def poll(&block) # puts "PopMission starts polling host #{@host}:#{@port} u: #{@user} pw: #{@pass}" = { :address => @host, :port => @port, :user_name => @user, :password => @pass, :enable_ssl => true } ::Mail.defaults do retriever_method :pop3, end all_mails = ::Mail.delivery_method.is_a?(::Mail::TestMailer) ? ::Mail::TestMailer.deliveries : ::Mail.all all_mails.each do |mail| begin (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) ⇒ Object
92 93 94 95 96 97 98 99 100 |
# File 'lib/xmlconv/util/polling_manager.rb', line 92 def (, &block) if(.multipart?) .parts.each do |part| (part, &block) end elsif(/text\/xml/.match(.content_type)) filtered_transaction(.decoded, sprintf('pop3:%s@%s:%s', @user, @host, @port), &block) end end |