我正在构建一个向管理员收件人发送电子邮件的应用程序。在开发中,它的值为 dev@mydomain.com ,在生产中它的值为 prod@mydomain.com 。在 Rails 中配置这种东西的最佳方法是什么?我想使用这样的东西:
mail(to: my.delivery.mail, :subject "whatever")
谢谢
我正在构建一个向管理员收件人发送电子邮件的应用程序。在开发中,它的值为 dev@mydomain.com ,在生产中它的值为 prod@mydomain.com 。在 Rails 中配置这种东西的最佳方法是什么?我想使用这样的东西:
mail(to: my.delivery.mail, :subject "whatever")
谢谢
有多种方法,但最简单的是:
recipient = Rails.env.production? ? 'prod@mydomain.com' : 'dev@mydomain.com'
mail(to: recipient, :subject "whatevs...")
使用环境变量
mail(:to => ENV['ADMIN_ADDRESS'], :subject => "whatever")
然后将它们设置为部署(通过 capistrano 或任何工具)。这些信息不是业务逻辑(所以它不属于应用程序)也不是业务数据(所以它不属于数据库)。这就是环境的用途。
如果有多个环境,您可以设置一个方法(主要在邮件类中)并设置管理员收件人,或者写入环境文件config.admin_mail =dev@mydomain.com
并在mail(to: AppName::Application.config.admin_email,..)