Mandrill SMTP API integration for ActionMailer. See detail of the protocol on the official page.
Add the mandriller gem to your Gemfile.
gem "mandriller"
And run bundle install
.
Add the following into any environment's settings in config/environments/
.
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:user_name => 'UserName',
:password => 'Password',
:address => "smtp.mandrillapp.com",
:domain => "your-domain.com",
:enable_starttls_auto => true,
:authentication => 'login',
:port => 587,
}
e.g.
class UserMailer < Mandriller::Base
include AbstractController::Callbacks # To use before_filter in ActionMailer::Base
set_open_track
set_click_track
set_google_analytics [Settings.root_host, Settings.admin.host].uniq
before_filter do
set_google_analytics_campaign "#{mailer_name.gsub(/_mailer$/, '')}/#{action_name.gsub(/_email$/, '')}"
end
def test_mail
mail from: 'from@example.com', to: 'to@example.com'
end
end
You can set the options globally and locally. Locally set option overwrites the one globally set. Just add any settings necessary for your mailers from the list below.
Enable open-tracking for the message.
set_open_track
orset_open_track true
: Enableset_open_track false
: Disable
Enable click-tracking for the message.
set_click_track 'all'
: enables click tracking on all emailsset_click_track 'htmlonly'
: enables click tracking only on html emailsset_click_track 'textonly'
: enables click tracking only on text emails
Automatically generate a plain-text version of the email from the HTML content.
set_auto_text
orset_auto_text true
: Enableset_auto_text false
: Disable
Automatically generate an HTML version of the email from the plain-text content.
set_auto_html
orset_auto_html true
: Enableset_auto_html false
: Disable
Use an HTML template stored in your Mandrill account
set_template 'template_name'
orset_template 'template_name', 'block_name'
:
template_name
the name of the stored template.
block_name
the name of the mc:edit region where the body of the SMTP generated message will be placed. Optional and defaults to "main".
Add dynamic data to replace mergetags that appear in your message content.
set_merge_vars foo: 1, bar: 2
Add Google Analytics tracking to links in your email for the specified domains.
set_google_analytics ['foo.com', 'bar.com'
]
Add an optional value to be used for the utm_campaign parameter in Google Analytics tracked links.
set_google_analytics 'campaign_name'
Information about any custom fields or data you want to append to the message.
set_metadata foo: 1, bar: 2
Whether to strip querystrings from links for reporting.
set_url_strip_qs
orset_url_strip_qs true
: Enableset_url_strip_qs false
: Disable
Whether to show recipients of the email other recipients, such as those in the "cc" field.
set_preserve_recipients
orset_preserve_recipients true
: Enableset_preserve_recipients false
: Disable
Whether to inline the CSS for the HTML version of the email (only for HTML documents less than 256KB).
set_inline_css
orset_inline_css true
: Enableset_inline_css false
: Disable
Set a custom domain to use for tracking opens and clicks instead of mandrillapp.com.
set_tracking_domain
orset_tracking_domain true
: Enableset_tracking_domain false
: Disable
Set a custom domain to use for SPF/DKIM signing instead of mandrill (for "via" or "on behalf of" in email clients).
set_signing_domain
orset_signing_domain true
: Enableset_signing_domain false
: Disable
Select a subaccount for sending the mail.
set_subaccount 'subaccount_id'
Control whether the View Content link appears for emails sent for your account.
set_view_content_link
orset_view_content_link true
: Enableset_view_content_link false
: Disable
An optional address that will receive an exact copy of the message, including all tracking data
set_bcc_address 'email_address'
Whether this message is important and should be delivered ahead of non-important messages
set_important
orset_important true
: Enableset_important false
: Disable
Specify a dedicated IP pool for the message.
set_ip_pool 'dedicated_ip_pool'
Specify a custom domain to use for the message's return-path
set_return_path_domain 'example.com'
Specify a future date/time that the message should be scheduled for delivery
set_send_at 5.days.from_now
Only available for paid accounts
Add tags to your emails.
set_tags ['tag1', 'tag2'
]
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Copyright (c) 2014 Daisuke Taniwaki. See LICENSE for details.