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.



16
17
18
19
20
21
22
23
# File 'lib/mailhandler/sending/api.rb', line 16

def initialize(api_token = nil)

  @type = :postmark_api
  @host = DEFAULT_HOST
  @api_token = api_token
  @use_ssl = false

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

#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



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

def init_client

  @client = setup_sending_client

end

#send(email) ⇒ Object



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

def send(email)

  verify_email(email)
  init_client
  client.deliver_message(email)

end

#setup_sending_clientObject



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

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: 15, host: host, secure: @use_ssl)

end