Class: GovDelivery::TMS::Mail::DeliveryMethod
- Inherits:
-
Object
- Object
- GovDelivery::TMS::Mail::DeliveryMethod
- Includes:
- Mail::CheckDeliveryParams
- Defined in:
- lib/govdelivery/tms/mail/delivery_method.rb
Overview
Use TMS from the mail gem or ActionMailer as a delivery method.
# Gemfile
gem 'govdelivery-tms', :require=>'govdelivery/tms/mail/delivery_method'
# config/environment.rb
config.action_mailer.delivery_method = :govdelivery_tms
config.action_mailer.govdelivery_tms_settings = {
:auth_token=>'auth_token',
:api_root=>'https://stage-tms.govdelivery.com'
}
Instance Attribute Summary collapse
-
#settings ⇒ Object
Returns the value of attribute settings.
Instance Method Summary collapse
- #client ⇒ Object
- #deliver!(mail) ⇒ Object
-
#initialize(values) ⇒ DeliveryMethod
constructor
A new instance of DeliveryMethod.
Constructor Details
#initialize(values) ⇒ DeliveryMethod
Returns a new instance of DeliveryMethod.
21 22 23 |
# File 'lib/govdelivery/tms/mail/delivery_method.rb', line 21 def initialize(values) self.settings = values end |
Instance Attribute Details
#settings ⇒ Object
Returns the value of attribute settings.
25 26 27 |
# File 'lib/govdelivery/tms/mail/delivery_method.rb', line 25 def settings @settings end |
Instance Method Details
#client ⇒ Object
53 54 55 |
# File 'lib/govdelivery/tms/mail/delivery_method.rb', line 53 def client @client ||= GovDelivery::TMS::Client.new(settings[:auth_token], settings) end |
#deliver!(mail) ⇒ Object
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 |
# File 'lib/govdelivery/tms/mail/delivery_method.rb', line 27 def deliver!(mail) fail GovDelivery::TMS::Errors::NoRelation.new('email_messages', client) unless client.respond_to?(:email_messages) body = case when mail.html_part mail.html_part.body when mail.text_part mail.text_part.body else mail.body end.decoded = { subject: mail.subject, body: body } [:from_email] = mail.from.first unless mail.from.blank? [:from_name] = mail[:from].display_names.first unless mail[:from].blank? = client..build() mail.to.each { |recip| .recipients.build(email: recip) } .post! end |