Class: SuperSendTX::DeliveryMethod
- Inherits:
-
Object
- Object
- SuperSendTX::DeliveryMethod
- Defined in:
- lib/supersendtx/delivery_method.rb
Overview
ActionMailer delivery method: config.action_mailer.delivery_method = :supersendtx
Instance Method Summary collapse
- #deliver!(mail) ⇒ Object
-
#initialize(settings = {}) ⇒ DeliveryMethod
constructor
A new instance of DeliveryMethod.
Constructor Details
#initialize(settings = {}) ⇒ DeliveryMethod
Returns a new instance of DeliveryMethod.
9 10 11 12 |
# File 'lib/supersendtx/delivery_method.rb', line 9 def initialize(settings = {}) @settings = settings || {} @client = @settings[:client] || build_client end |
Instance Method Details
#deliver!(mail) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/supersendtx/delivery_method.rb', line 14 def deliver!(mail) params = MessageMapper.to_send_params(mail) result = @client.emails.send(**params) = result.is_a?(Hash) ? (result["id"] || result[:id]) : nil mail. = if && mail.respond_to?(:message_id=) result rescue SuperSendTX::Error => e # Re-raise as SuperSendTX::Error (not a bare String → RuntimeError) so # ActionMailer / rescue_from can read status, details, and error_code. raise SuperSendTX::Error.new( "SuperSend TX API error: #{e.}", status: e.status, details: e.details, error_code: e.error_code, upgrade_url: e.upgrade_url ) end |