Module: ActionMailer::Mandrill
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/action_mailer/mandrill.rb,
lib/action_mailer/mandrill/version.rb
Overview
Adds a new way to send mails via Mandrill (actually uses normal SMTP just sets specific SMTP headers)
Constant Summary collapse
- VERSION =
"0.0.1"
Instance Method Summary collapse
-
#mandrill_mail(template_slug, options = {}) ⇒ Object
Sends a mail with a specific mandrill template See help.mandrill.com/entries/21688056-Using-SMTP-Headers-to-customize-your-messages to learn more about each option.
Instance Method Details
#mandrill_mail(template_slug, options = {}) ⇒ Object
Sends a mail with a specific mandrill template See help.mandrill.com/entries/21688056-Using-SMTP-Headers-to-customize-your-messages to learn more about each option.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/action_mailer/mandrill.rb', line 41 def mandrill_mail(template_slug, = {}) = {} headers['X-MC-Template'] = template_slug headers['X-MC-Track'] = .delete(:link_tracking) if .has_key?(:link_tracking) headers['X-MC-Tags'] = .delete(:tags).join(',') if .has_key?(:tags) receiver_name = .delete(:receiver_name) receivers = .delete(:to) receivers = [receivers] unless receivers.is_a?(Array) raise RuntimeError.new("Please specify at least one receiver") if receivers.blank? if .has_key?(:merge_objects) .delete(:merge_objects).each do |o| = .merge!(o.) end end if .has_key?(:merge_tags) = .merge! .delete(:merge_tags) end receivers.each do |receiver| headers['X-MC-MergeVars'] = JSON.generate( .merge!('_rcpt' => receiver), ascii_only: true ) end [:to] = receivers [:to] = "#{receiver_name} <#{receivers.first}>" if receivers.length == 1 && receiver_name.present? mail() do |format| format.text { render text: '' } end end |