Module: Mmailer::ErrorHandling

Included in:
MailHelper
Defined in:
lib/mmailer/error_handling.rb

Instance Method Summary collapse

Instance Method Details

#try(number_of_times = 3) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/mmailer/error_handling.rb', line 4

def try(number_of_times=3)
    retry_count = 0
    begin
      yield
    rescue Net::OpenTimeout, Net::ReadTimeout, Net::SMTPAuthenticationError, EOFError => e
      retry_count += 1
      puts  "#{e.class}: #{e.message}: #{retry_count} retries"
      sleep retry_count
      if retry_count < number_of_times
        retry
      else
        puts "Too many errors. Pausing mail queue."
        client(:pause)
      end
      nil
    rescue Net::SMTPUnknownError => e
      puts e.message
      client(:pause)
    end
end