Sha256: cf577a450891ef4783879bf067d59a6c95ae08220868cf96e7cc341974f44286
Contents?: true
Size: 1.63 KB
Versions: 8
Compression:
Stored size: 1.63 KB
Contents
require 'tms_client' require 'mail' require 'mail/check_delivery_params' module TMS module Mail # Use TMS from the mail gem or ActionMailer as a delivery method. # # # Gemfile # gem 'tms_client', :require=>'tms_client/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' # } class DeliveryMethod include ::Mail::CheckDeliveryParams def initialize(values) self.settings = values end attr_accessor :settings def deliver!(mail) #check_params(mail) raise TMS::Errors::NoRelation.new('email_messages', client) unless client.respond_to?(:email_messages) envelope_from = mail.return_path || mail.sender || mail.from_addrs.first tms_message = client.email_messages.build( :from_name => mail[:from].display_names.first, :subject => mail.subject, :body => (mail.body || mail.html_part.body || mail.text_part.body).to_s ) mail.to.each { |recip| tms_message.recipients.build(:email => recip) } tms_message.post! tms_message end def client @client ||= TMS::Client.new(settings[:auth_token], settings) end end end end if defined?(ActionMailer) ActionMailer::Base.add_delivery_method :govdelivery_tms, TMS::Mail::DeliveryMethod, { :auth_token => nil, :logger => ActionMailer::Base.logger, :api_root => TMS::Client::DEFAULTS[:api_root]} end
Version data entries
8 entries across 8 versions & 1 rubygems