Sha256: 590bf7730f788f66d856b23fb61faa0faf31146c2bb86a2b2fdf8c533d00e123
Contents?: true
Size: 1.7 KB
Versions: 1
Compression:
Stored size: 1.7 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 = { # :username=>'email@foo.com', # :password=>'pass', # :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[:username], settings[:password], settings) end end end end if defined?(ActionMailer) ActionMailer::Base.add_delivery_method :govdelivery_tms, TMS::Mail::DeliveryMethod, { :username => nil, :password => nil, :logger => ActionMailer::Base.logger, :api_root => TMS::Client::DEFAULTS[:api_root]} end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tms_client-0.1.1 | lib/tms_client/mail/delivery_method.rb |