为Rails中的每个环境设置Mailer的发件人地址

时间:2016-07-29 04:46:51

标签: ruby-on-rails-4 smtp actionmailer

我正在开发一个rails应用程序,它通过联系表单(通过邮件程序)发送电子邮件。这一切都很有效..在开发中。我目前已将其设置为从域@dev.example.com发送)并且在制作中我希望应用仅从@example.com发送。我已在config / environments文件夹中为每个环境添加了config.action_mailer.smtp_settings和所有SMTP信息。问题是当我在邮件程序中设置default from:地址时,我很难编码@dev.example.com

有没有办法:

检查应用当前正在运行的环境并为每个环境定义电子邮件地址/域名?

从相应的config / environments / * .rb文件中的SMTP设置获取当前环境:domain

欢迎所有其他想法。

由于

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

# config/initializers/rails_additional_env.rb:
if defined?(Rails)
  case Rails.env
  when "production"
    RAILS_DOMAIN = "example.com"
  when "development"
    RAILS_DOMAIN = "dev.example.com"
  end
end

然后在你的邮件中

default from: "foo@#{RAILS_DOMAIN}"

这是开发环境的结果。

screenshot