38 lines
762 B
Ruby
38 lines
762 B
Ruby
require 'base64'
|
|
require 'postman/send_result'
|
|
|
|
module Postman
|
|
class SendRawMessage
|
|
|
|
def initialize(client)
|
|
@client = client
|
|
@attributes = {}
|
|
end
|
|
|
|
def send!
|
|
api = @client.moonrope.request(:send, :raw, @attributes)
|
|
if api.success?
|
|
SendResult.new(@client, api.data)
|
|
elsif api.status == 'error'
|
|
raise SendError.new(api.data['code'], api.data['message'])
|
|
else
|
|
raise Error, "Couldn't send message"
|
|
end
|
|
end
|
|
|
|
def mail_from(address)
|
|
@attributes[:mail_from] = address
|
|
end
|
|
|
|
def rcpt_to(*addresses)
|
|
@attributes[:rcpt_to] ||= []
|
|
@attributes[:rcpt_to] += addresses
|
|
end
|
|
|
|
def data(data)
|
|
@attributes[:data] = Base64.encode64(data)
|
|
end
|
|
|
|
end
|
|
end
|