def start(config = Configuration.instance, &block)
      raise ArgumentError.new("Mail::Retrievable#pop3_start takes a block") unless block_given?
    
      pop3 = Net::POP3.new(settings[:address], settings[:port], false)
      pop3.enable_ssl(OpenSSL::SSL::VERIFY_NONE) if settings[:enable_ssl]
      pop3.read_timeout = settings[:read_timeout] if settings[:read_timeout]
      pop3.start(settings[:user_name], settings[:password])
    
      yield pop3
    ensure
      if defined?(pop3) && pop3 && pop3.started?
        pop3.finish
      end
    end
def start(config = Configuration.instance, &block)
      raise ArgumentError.new("Mail::Retrievable#pop3_start takes a block") unless block_given?
    
      pop3 = Net::POP3.new(settings[:address], settings[:port], false)
      pop3.enable_ssl(OpenSSL::SSL::VERIFY_NONE) if settings[:enable_ssl]
      pop3.read_timeout = settings[:read_timeout] if settings[:read_timeout]
      pop3.start(settings[:user_name], settings[:password])
    
      yield pop3
    ensure
      if defined?(pop3) && pop3 && pop3.started?
        pop3.finish
      end
    end
Start a POP3 session and ensure that it will be closed in any case. Any messages
 marked for deletion via #find_and_delete or with the :delete_after_find option
 will be deleted when the session is closed.