many-mailers icon indicating copy to clipboard operation
many-mailers copied to clipboard

Support for multiple SMTP servers in ActionMailer

ManyMailers

Multiple SMTP servers for ActionMailer.

Example

ProjectMailer.with_settings(:internal) do |mailer| mailer.deliver_notification(blah) end

You can also specify servers to use in the event that the initially specified server fails:

ProjectMailer.with_settings(:internal, :retry => [:backup, :default]) do |mailer| mailer.deliver_notification(blah) end

USE

Create a YAML file in your config directory named "mail_servers.yml" Put your mail settings in there like so (see mail_servers.yaml in this plugin's test directory for a better example):

|default: | address: mail.example.com | port: 25 | domain: example.com | user_name: test_user | password: test_password | |internal: | address: internal.example.com | port: 25 | domain: example.com | user_name: test_user | password: test_password

The plugin will look for a server named "default" to use by default. Make sure it exists.

ActionMailer::Base (and all of its subclasses, ie, your mailers) will use this server by default.

TODO

  • Per-mailer settings (non-global)
  • ActionMailer::Base#with_settings shouldn't modify SMTP settings for other mailers besides the one that called it.

Copyright (c) 2008 Animoto Productions, released under the MIT license