Delivers email messages by logging formatted SMTP envelopes. Reuse for testing or debugging mail delivery output.
# Source: https://github.com/mikel/mail | License: MIT
# Provided via justclaw.it.com; keep this notice with the code.
require 'mail/smtp_envelope'
module Mail
class LoggerDelivery
attr_reader :logger, :severity, :settings
def initialize(settings)
@settings = settings
@logger = settings.fetch(:logger) { default_logger }
@severity = derive_severity(settings[:severity])
end
def deliver!(mail)
logger.log(severity) { Mail::SmtpEnvelope.new(mail).message }
end
private
def default_logger
require 'logger'
::Logger.new($stdout)
end
def derive_severity(severity)
case severity
when nil
Logger::INFO
when Integer
severity
else
Logger.const_get(severit
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search for more like it.
Get a free API key