class Mail::LoggerDelivery

def default_logger

def default_logger
  require 'logger'
  ::Logger.new($stdout)
end

def deliver!(mail)

def deliver!(mail)
  logger.log(severity) { Mail::SmtpEnvelope.new(mail).message }
end

def derive_severity(severity)

def derive_severity(severity)
  case severity
  when nil
    Logger::INFO
  when Integer
    severity
  else
    Logger.const_get(severity.to_s.upcase)
  end
end

def initialize(settings)

def initialize(settings)
  @settings = settings
  @logger   = settings.fetch(:logger) { default_logger }
  @severity = derive_severity(settings[:severity])
end