Tag: settings
How to use Rails SMTP configuration parameters from database
by Lennart on Jul.26, 2009, under Ruby On Rails
Usually the Rails SMTP configuration takes place in config/environment.rb like this:
ActionMailer::Base.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => "domain.com", :user_name => "user@domain.com", :password => "password", :authentication => :plain }
ScopePort already has a Email settings part in the setup section where all the required SMTP settings are stored. I wanted to fetch the SMTP configuration from the database to avoid double configuration. I stumbled over this blog post after a while: http://broadcast.oreilly.com/2009/03/using-multiple-smtp-accounts-w.html Based on this I developed the following dynamic way to define the SMTP settings:
class EmergencyMailer < ActionMailer::Base def load_settings @@smtp_settings = { :address => Setting.first.mail_server, :port => Setting.first.mail_port, :domain => Setting.first.mail_hostname, :authentication => :plain, :user_name => Setting.first.mail_user, :password =>Setting.first.mail_pass } end def emergency_notification(emergency, email) load_settings recipients email from Setting.first.mail_from subject "[ScopePort] An emergency has been declared!" sent_on Time.now body :emergency => emergency end end
The method load_settings gets called by the delivery method and fills the smtp_settings instance variable with parameters from the database.
Check out this Rails Guide if you want to learn more about ActionMailer: http://guides.rubyonrails.org/action_mailer_basics.html

