传递rails服务器域名进行邮寄的最佳方法是什么?

时间:2009-06-17 06:31:16

标签: ruby-on-rails ruby email dns

我有一个应用程序已在几个环境中启动,即(开发,升级,测试版,直播)

发送邮件时传递应用程序域名的最佳方法是什么,根据服务器允许不同的域名?

我的第一个想法是在每个相应的environment.rb文件中添加一些内容,因此config/environments/beta.rb将包含

ActionMailer::Base.smtp_settings[:domain] = 'beta.domain.com'

config/environments/staging.rb将包含

ActionMailer::Base.smtp_settings[:domain] = 'staging.domain.com'

这感觉就像我正在做一些基本的东西,以至于Rails已经有了这个价值,但我没有在我通常期望的任何地方找到它,也无法在文档中找到它。 / p>

最好的方法是什么?

2 个答案:

答案 0 :(得分:4)

我通常只将request.host的值传递给ActionMailer方法。

答案 1 :(得分:1)

在您的环境文件中,您要设置:

ActionMailer::Base.default_url_options = { :host => "beta.domain.com" }

如果您使用的是url_for而不是命名路由,则还需要指定:only_path =>假...所以你没有得到相对的网址。不过,我通常会尝试使用命名路由。