class ArMailerAWS::Mailer
Attributes
email_class[RW]
Public Class Methods
new(options={})
click to toggle source
# File lib/ar_mailer_aws/mailer.rb, line 6 def initialize(options={}) self.email_class = options[:email_class] || ArMailerAWS.email_class.constantize end
Public Instance Methods
deliver!(mail)
click to toggle source
# File lib/ar_mailer_aws/mailer.rb, line 10 def deliver!(mail) envelope_from, destinations, message = check_params(mail) destinations.each do |destination| self.email_class.create! mail: message, to: destination, from: envelope_from end end
Private Instance Methods
check_params(mail)
click to toggle source
# File lib/ar_mailer_aws/mailer.rb, line 20 def check_params(mail) envelope_from = mail.return_path || mail.sender || mail.from_addrs.first if envelope_from.blank? raise ArgumentError.new('A sender (Return-Path, Sender or From) required to send a message') end destinations ||= mail.destinations if mail.respond_to?(:destinations) && mail.destinations if destinations.blank? raise ArgumentError.new('At least one recipient (To, Cc or Bcc) is required to send a message') end message ||= mail.encoded if mail.respond_to?(:encoded) if message.blank? raise ArgumentError.new('A encoded content is required to send a message') end [envelope_from, destinations, message] end