Class: ActionMailer::Base
- Inherits:
-
Object
- Object
- ActionMailer::Base
- Defined in:
- lib/actionmailer_multiple_smtp.rb
Class Method Summary collapse
Instance Method Summary collapse
- #deliver_with_intelligent_smtp!(mail = @mail) ⇒ Object (also: #deliver!)
Class Method Details
.smtp_settings_by_from_address ⇒ Object
5 6 7 |
# File 'lib/actionmailer_multiple_smtp.rb', line 5 def smtp_settings_by_from_address @smtp_settings_by_from_address ||= {} end |
Instance Method Details
#deliver_with_intelligent_smtp!(mail = @mail) ⇒ Object Also known as: deliver!
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/actionmailer_multiple_smtp.rb', line 10 def deliver_with_intelligent_smtp!(mail = @mail) if ActionMailer::Base.smtp_settings_by_from_address[mail.from.first.downcase] # Save the default email settings. original_smtp_settings = self.class.smtp_settings begin # Apply the from address specific settings. self.class.smtp_settings = ActionMailer::Base.smtp_settings_by_from_address[mail.from.first.downcase] # Send the message. deliver_without_intelligent_smtp! mail ensure # Return smtp_settings to original settings. self.class.smtp_settings = original_smtp_settings end else deliver_without_intelligent_smtp! mail end end |