Sha256: 5b7bb00fe0345300440f13a089440a88b1b8eb8c818f0f34d77ffa96a99252ff
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
module Tuktuk class Bounce < RuntimeError HARD_BOUNCE_CODES = [ 501, # Bad address syntax (eg. "i.user.@hotmail.com") 504, # mailbox is disabled 511, # sorry, no mailbox here by that name (#5.1.1 - chkuser) 540, # recipient's email account has been suspended. 550, # Requested action not taken: mailbox unavailable 552, # Spam Message Rejected -- Requested mail action aborted: exceeded storage allocation 554, # Recipient address rejected: Policy Rejection- Abuse. Go away -- This user doesn't have a yahoo.com account 563, # ERR_MSG_REJECT_BLACKLIST, message has blacklisted content and thus I reject it 571 # Delivery not authorized, message refused ] def self.type(e) if e.is_a?(Net::SMTPFatalError) and code = e.to_s[0..2] and HARD_BOUNCE_CODES.include? code.to_i HardBounce.new(e) else SoftBounce.new(e) # either soft mailbox bounce, timeout or server bounce end end def code if str = to_s[0..2] and str.gsub(/[^0-9]/, '') != '' str.to_i end end end class HardBounce < Bounce; end class SoftBounce < Bounce; end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
tuktuk-0.6.1 | lib/tuktuk/bounce.rb |
tuktuk-0.6.0 | lib/tuktuk/bounce.rb |
tuktuk-0.5.4 | lib/tuktuk/bounce.rb |