many-mailers
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