【发布时间】:2013-02-21 15:37:32
【问题描述】:
我的 ActionMailer 在生产和开发中都能正常工作。我为每个环境使用不同的 smtp 设置,用于开发的 gmail 和通过 Heroku 用于生产的 SendGrid 帐户。我手动切换 setup_mail.rb 文件中的设置以在开发中工作,然后在投入生产之前将它们切换回来。这可以防止我的 gmail 密码在 github 上公开,因为 SendGrid/Heroku 设置在文件中不需要我的密码:
开发设置_mail.rb
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "mysite.com",
:user_name => "me@mysite.com",
: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 Base smtp 设置?谢谢
【问题讨论】:
标签: ruby-on-rails email smtp sendmail actionmailer