diaspora/lib/messagebus/mailer.rb
2012-01-03 23:31:24 -08:00

40 lines
1 KiB
Ruby

module Messagebus
class Mailer
def initialize(api_key)
@client = MessagebusApi::Messagebus.new(api_key)
end
attr_accessor :settings
def new(*settings)
self.settings = {}
self
end
def from_header_parse(string)
string.split('<')[0].delete('"')
end
def deliver(message)
deliver!(message)
end
def deliver!(message)
msg = {:toEmail => message.to.first, :subject => message.subject, :fromEmail => AppConfig[:smtp_sender_address], :fromName => from_header_parse(message[:from].to_s)}
if message.multipart?
msg[:plaintextBody] = message.text_part.body.to_s if message.text_part
msg[:htmlBody] = message.html_part.body.to_s if message.html_part
else
msg[:plaintextBody] = message.body.to_s
msg[:htmlBody] = message.body.to_s
end
begin
@client.add_message(msg, true)
rescue => message_bus_api_error
raise "Messagebus API error=#{message_bus_api_error}, message=#{msg.inspect}"
end
end
end
end