Class: MailHandler::Sending::PostmarkAPISender

Inherits:
MailHandler::Sender show all
Defined in:
lib/mailhandler/sending/api.rb

Direct Known Subclasses

PostmarkBatchAPISender

Instance Attribute Summary collapse

Attributes inherited from MailHandler::Sender

#dispatcher, #sending

Instance Method Summary collapse

Methods inherited from MailHandler::Sender

#send_email

Constructor Details

#initialize(api_token = nil) ⇒ PostmarkAPISender

Returns a new instance of PostmarkAPISender.



18
19
20
21
22
23
24
25
26
# File 'lib/mailhandler/sending/api.rb', line 18

def initialize(api_token = nil)
  @type = :postmark_api
  @host = DEFAULT_HOST
  @api_token = api_token
  @use_ssl = false

  @http_open_timeout = 15
  @http_read_timeout = 15
end

Instance Attribute Details

#api_tokenObject

Returns the value of attribute api_token.



11
12
13
# File 'lib/mailhandler/sending/api.rb', line 11

def api_token
  @api_token
end

#clientObject

Returns the value of attribute client.



11
12
13
# File 'lib/mailhandler/sending/api.rb', line 11

def client
  @client
end

#hostObject

Returns the value of attribute host.



11
12
13
# File 'lib/mailhandler/sending/api.rb', line 11

def host
  @host
end

#http_open_timeoutObject

Returns the value of attribute http_open_timeout.



11
12
13
# File 'lib/mailhandler/sending/api.rb', line 11

def http_open_timeout
  @http_open_timeout
end

#http_read_timeoutObject

Returns the value of attribute http_read_timeout.



11
12
13
# File 'lib/mailhandler/sending/api.rb', line 11

def http_read_timeout
  @http_read_timeout
end

#use_sslObject

Returns the value of attribute use_ssl.



11
12
13
# File 'lib/mailhandler/sending/api.rb', line 11

def use_ssl
  @use_ssl
end

Instance Method Details

#init_clientObject



34
35
36
# File 'lib/mailhandler/sending/api.rb', line 34

def init_client
  @client = setup_sending_client
end

#send(email) ⇒ Object



28
29
30
31
32
# File 'lib/mailhandler/sending/api.rb', line 28

def send(email)
  verify_email(email)
  init_client
  client.deliver_message(email)
end

#setup_sending_clientObject



38
39
40
41
42
# File 'lib/mailhandler/sending/api.rb', line 38

def setup_sending_client
  # clearing cache so valid host is accepted, and not the cached one
  Postmark::HttpClient.instance_variable_set('@http', nil)
  Postmark::ApiClient.new(api_token, http_open_timeout: http_open_timeout, http_read_timeout: http_read_timeout, host: host, secure: @use_ssl)
end