0
我的ActionMailer在生產和開發中都能正常工作。我針對每個環境使用不同的smtp設置,針對開發的gmail和通過Heroku進行生產的SendGrid帳戶。我手動切換setup_mail.rb文件中的設置以在開發中工作,然後在投入生產之前切換它們。這可以防止我的Gmail密碼成爲公共GitHub上的SendGrid/Heroku的設置不要求我在文件中的密碼:如何爲開發和生產設置不同的ActionMailer基本smtp設置?
發展爲setup_mail.rb
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "mysite.com",
:user_name => "[email protected]",
:password => 'mypassword',
:authentication => "plain",
:enable_starttls_auto => true
}
生產爲setup_mail.rb
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'heroku.com'
}
ActionMailer::Base.delivery_method = :smtp
我擔心我會不小心將密碼的開發設置推送到github。我想停止手動切換設置以防止發生這種情況。如何爲開發和生產設置不同的ActionMailer基本smtp設置?謝謝
感謝,環境變量是要走的路。在開發和生產過程中,我放棄了使用SendGrid的gmail設置,並且我的設置是安全的。我發現這個[RailsApps Project Rails Environment Variables](http://railsapps.github.com/rails-environment-variables.html)和RailsCast#85 YAML配置(修訂版)非常有幫助。還有我沒有使用過的Figaro Gem,但是懷疑在這裏也很有用。 – 2013-03-07 20:39:13