class GoogleHttpActionmailer::DeliveryMethod
Attributes
delivery_options[R]
message_options[R]
service[R]
Public Class Methods
new(params)
click to toggle source
# File lib/google_http_actionmailer.rb, line 14 def initialize(params) @service = Google::Apis::GmailV1::GmailService.new @service.authorization = params[:authorization] @service.request_options.merge params[:request_options] unless params[:client_options].nil? @service.client_options.members.each do |opt| opt = opt.to_sym unless params[:client_options][opt].nil? @service.client_options[opt] = params[:client_options][opt] end end end @message_options = params[:message_options] || {} @delivery_options = params[:delivery_options] || {} end
Public Instance Methods
deliver!(mail)
click to toggle source
# File lib/google_http_actionmailer.rb, line 33 def deliver!(mail) user_id = message_options[:user_id] || 'me' message = Google::Apis::GmailV1::Message.new( raw: mail.to_s, thread_id: mail['Thread-ID'].to_s ) before_send = delivery_options[:before_send] if before_send && before_send.respond_to?(:call) before_send.call(mail, message) end message = service.send_user_message( user_id, message, message_options ) after_send = delivery_options[:after_send] if after_send && after_send.respond_to?(:call) after_send.call(mail, message) end end