lib/govdelivery/tms/mail/delivery_method.rb in govdelivery-tms-0.8.4 vs lib/govdelivery/tms/mail/delivery_method.rb in govdelivery-tms-0.8.5

- old
+ new

@@ -1,14 +1,15 @@ require 'govdelivery-tms' require 'mail' require 'mail/check_delivery_params' + module GovDelivery::TMS module Mail # Use TMS from the mail gem or ActionMailer as a delivery method. # # # Gemfile - # gem 'govdelivery-tms', :require=>'govdelivery-tms/mail/delivery_method' + # 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', @@ -25,24 +26,28 @@ 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 + when mail.html_part + mail.html_part.body + when mail.text_part + mail.text_part.body + else + mail.body end.decoded - tms_message = client.email_messages.build( - from_name: mail[:from].display_names.first, + message_params = { subject: mail.subject, - body: body - ) + body: body + } + message_params[:from_email] = mail.from.first unless mail.from.blank? + message_params[:from_name] = mail[:from].display_names.first unless mail[:from].blank? + tms_message = client.email_messages.build(message_params) + + mail.to.each { |recip| tms_message.recipients.build(email: recip) } tms_message.post! tms_message end @@ -52,9 +57,9 @@ end end end if defined?(ActionMailer) - ActionMailer::Base.add_delivery_method :govdelivery_tms, GovDelivery::TMS::Mail::DeliveryMethod, auth_token: nil, - logger: ActionMailer::Base.logger, - api_root: GovDelivery::TMS::Client::DEFAULTS[:api_root] + ActionMailer::Base.add_delivery_method :govdelivery_tms, GovDelivery::TMS::Mail::DeliveryMethod, auth_token: nil, + logger: ActionMailer::Base.logger, + api_root: GovDelivery::TMS::Client::DEFAULTS[:api_root] end