Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 设置Mailer';Rails中每个环境的s From地址_Ruby On Rails 4_Smtp_Actionmailer - Fatal编程技术网

Ruby on rails 4 设置Mailer';Rails中每个环境的s From地址

Ruby on rails 4 设置Mailer';Rails中每个环境的s From地址,ruby-on-rails-4,smtp,actionmailer,Ruby On Rails 4,Smtp,Actionmailer,我正在开发一个rails应用程序,它通过联系人表单(通过mailer)发送电子邮件。这一切都很有效。。正在开发中。我目前已将其设置为从域@dev.example.com)发送,在生产中,我希望该应用程序仅从@example.com发送。我在config/environments文件夹中添加了config.action\u mailer.smtp\u设置,其中包含每个环境的所有smtp信息。问题是当我在邮件中设置默认地址时,我正在硬编码@dev.example.com 有没有办法: 检查应用程序当

我正在开发一个rails应用程序,它通过联系人表单(通过mailer)发送电子邮件。这一切都很有效。。正在开发中。我目前已将其设置为从域
@dev.example.com
)发送,在生产中,我希望该应用程序仅从
@example.com
发送。我在config/environments文件夹中添加了
config.action\u mailer.smtp\u设置,其中包含每个环境的所有smtp信息。问题是当我在邮件中设置
默认地址时,我正在硬编码
@dev.example.com

有没有办法:

检查应用程序当前运行的环境,并为每个环境定义电子邮件地址/域

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

欢迎所有其他想法


谢谢

您可以执行以下操作:

# 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}"
这是开发环境的一个结果


您可以执行以下操作:

# 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}"
这是开发环境的一个结果