class ActionGmailer::DeliveryMethod
Attributes
account[RW]
auth_type[RW]
helo_domain[RW]
oauth2_token[RW]
settings[R]
smtp_host[RW]
smtp_port[RW]
Public Class Methods
new(settings)
click to toggle source
# File lib/action_gmailer.rb, line 21 def initialize(settings) self.settings = settings end
Public Instance Methods
deliver!(mail)
click to toggle source
# File lib/action_gmailer.rb, line 30 def deliver!(mail) envelope_from, destinations, message = check_params(mail) smtp = Net::SMTP.new(smtp_host, smtp_port) smtp.enable_starttls_auto smtp.start(helo_domain, account, oauth2_token, auth_type) do smtp.sendmail(message, envelope_from, destinations) end rescue StandardError => exp raise DeliveryError, exp.message end
settings=(settings)
click to toggle source
# File lib/action_gmailer.rb, line 25 def settings=(settings) @settings = settings set_accessors_from_settings! end
Private Instance Methods
default_auth_type()
click to toggle source
# File lib/action_gmailer.rb, line 56 def default_auth_type :xoauth2 end
default_helo_domain()
click to toggle source
# File lib/action_gmailer.rb, line 52 def default_helo_domain 'gmail.com' end
default_smtp_host()
click to toggle source
# File lib/action_gmailer.rb, line 44 def default_smtp_host 'smtp.gmail.com' end
default_smtp_port()
click to toggle source
# File lib/action_gmailer.rb, line 48 def default_smtp_port 587 end
set_accessors_from_settings!()
click to toggle source
# File lib/action_gmailer.rb, line 60 def set_accessors_from_settings! @smtp_host = settings[:smtp_host] || default_smtp_host @smtp_port = settings[:smtp_port] || default_smtp_port @helo_domain = settings[:helo_domain] || default_helo_domain @auth_type = settings[:auth_type] || default_auth_type @oauth2_token = settings.fetch(:oauth2_token) @account = settings.fetch(:account) rescue KeyError raise DeliveryError, 'Missing required setting' end