我的 ActionMailer 在生产和开发中都能正常工作。我为每个环境使用不同的 smtp 设置,使用 gmail 进行开发,并通过 Heroku 使用 SendGrid 帐户进行生产。我手动切换 setup_mail.rb 文件中的设置以在开发中工作,然后在投入生产之前将它们切换回来。这可以防止我的 gmail 密码在 github 上公开,因为 SendGrid/Heroku 设置在文件中不需要我的密码:
开发 setup_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 设置?谢谢