class MailsocioRails::Delivery
Attributes
settings[RW]
Public Class Methods
new(settings)
click to toggle source
# File lib/mailsocio_rails/delivery.rb, line 6 def initialize(settings) self.settings = default_settings.merge settings end
Public Instance Methods
deliver!(mail)
click to toggle source
Calls superclass method
# File lib/mailsocio_rails/delivery.rb, line 10 def deliver!(mail) addrs = addresses_from mail, :to, :cc bcc = mail[:bcc].to_s mail.to = settings[:mailsocio_recipient] mail.cc = nil mail.bcc = nil mail['X-To'] = Hash[addrs.map {|(addr, name)| [addr, {'name' => name}]}].to_json mail['X-Bcc'] = bcc mail['X-Account-Id'] = settings[:account_id] mail['X-Api-Key'] = settings[:api_key] super(mail) end
Private Instance Methods
addresses_from(mail, *methods)
click to toggle source
# File lib/mailsocio_rails/delivery.rb, line 37 def addresses_from(mail, *methods) methods.flat_map { |method| (mail.send(method) || []).zip(really_try(mail[method], :display_names) || []) } end
default_settings()
click to toggle source
# File lib/mailsocio_rails/delivery.rb, line 28 def default_settings { address: 'app.mailarbor.com', port: 25, mailsocio_recipient: 'submit@app.mailarbor.com', domain: 'localhost.localdomain' } end
really_try(obj, meth, *args, &block)
click to toggle source
# File lib/mailsocio_rails/delivery.rb, line 43 def really_try(obj, meth, *args, &block) obj.send(meth, *args, &block) rescue NameError nil end