首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为开发和生产设置不同的ActionMailer基本smtp设置?

如何为开发和生产设置不同的ActionMailer基本smtp设置?
EN

Stack Overflow用户
提问于 2013-03-07 01:40:13
回答 1查看 3.9K关注 0票数 0

我让ActionMailer在生产和开发中都能正常工作。我对每个环境使用不同的smtp设置,gmail用于开发,SendGrid帐户用于生产。我手动切换setup_mail.rb文件中的设置以在开发中工作,然后在推送到生产环境之前将它们切换回来。这将防止我的gmail密码在github上公开,因为SendGrid/Heroku设置不需要在文件中包含我的密码:

开发setup_mail.rb

代码语言:javascript
运行
复制
    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

代码语言:javascript
运行
复制
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设置?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-07 01:46:13

在production.rb和development.rb中设置此设置,而不是将密码硬编码,您也可以在本地使用环境变量,在您的项目中创建一个.env文件,该文件将在您使用cd时加载:

代码语言:javascript
运行
复制
EMAIL=me@mysite.com
EMAIL_PASSWORD= mypassword

在development.rb中使用ENV['EMAIL']ENV['EMAIL_PASSWORD']

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15254244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档