Class: Eco::API::Common::Session::Mailer
- Includes:
- Language::AuxiliarLogger
- Defined in:
- lib/eco/api/common/session/mailer/aws_provider.rb,
lib/eco/api/common/session/mailer.rb,
lib/eco/api/common/session/mailer/provider_base.rb,
lib/eco/api/common/session/mailer/sendgrid_provider.rb
Overview
rubocop:disable Naming/MethodParameterName
Defined Under Namespace
Classes: AwsProvider, ProviderBase, SendgridProvider
Constant Summary collapse
- DEFAULT_PROVIDER =
:sendgrid
Instance Attribute Summary collapse
-
#provider ⇒ Object
readonly
Returns the value of attribute provider.
Instance Method Summary collapse
-
#initialize(enviro:, provider: DEFAULT_PROVIDER) ⇒ Mailer
constructor
A new instance of Mailer.
-
#mail(subject:, body:, to: nil, cc: nil, bcc: nil) ⇒ Object
Sends an email.
Methods included from Language::AuxiliarLogger
Constructor Details
#initialize(enviro:, provider: DEFAULT_PROVIDER) ⇒ Mailer
Returns a new instance of Mailer.
12 13 14 15 16 17 18 |
# File 'lib/eco/api/common/session/mailer.rb', line 12 def initialize(enviro:, provider: DEFAULT_PROVIDER) msg = "Required Environment object (enviro:). Given: #{enviro.class}" raise msg if enviro && !enviro.is_a?(Eco::API::Common::Session::Environment) @enviro = enviro @provider = provider || DEFAULT_PROVIDER end |
Instance Attribute Details
#provider ⇒ Object (readonly)
Returns the value of attribute provider.
9 10 11 |
# File 'lib/eco/api/common/session/mailer.rb', line 9 def provider @provider end |
Instance Method Details
#mail(subject:, body:, to: nil, cc: nil, bcc: nil) ⇒ Object
Sends an email
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/eco/api/common/session/mailer.rb', line 24 def mail(subject:, body:, to: nil, cc: nil, bcc: nil) return false unless (serv = service) unless serv.configured? msg = 'Mailer: You are missing configuration parameters ' msg << "for '#{provider}'. Review your .env file" log(:error) { msg } return false end serv.send_mail( subject: subject, body: body, to: to, cc: cc, bcc: bcc ).tap do |response| next unless response to_addr = serv.fetch_to(to) msg = "Sent email #{ProviderBase.to_desc( to: to_addr, cc: cc, bcc: bcc )}" puts msg log(:debug) { msg } end end |