为 Rails 中的每个环境设置邮件发件人地址
Set Mailer's From Address for Each Environment in Rails
我正在开发一个 rails 应用程序,该应用程序通过联系表(通过邮件程序)发送电子邮件。这一切都很好..在开发中。我目前已将其设置为从域 @dev.example.com
) 发送,在生产中我希望该应用仅从 @example.com
发送。我在 config/environments 文件夹中添加了 config.action_mailer.smtp_settings
以及每个环境的所有 SMTP 信息。问题是当我在邮件程序中设置 default from:
地址时,我正在硬编码 @dev.example.com
。
有没有办法:
检查应用当前 运行 在哪个环境中并为每个环境定义一个电子邮件 address/domain?
或
从相应 config/environments/*.rb 文件中的 SMTP 设置获取当前环境的 :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}"
这是开发环境的结果。
我正在开发一个 rails 应用程序,该应用程序通过联系表(通过邮件程序)发送电子邮件。这一切都很好..在开发中。我目前已将其设置为从域 @dev.example.com
) 发送,在生产中我希望该应用仅从 @example.com
发送。我在 config/environments 文件夹中添加了 config.action_mailer.smtp_settings
以及每个环境的所有 SMTP 信息。问题是当我在邮件程序中设置 default from:
地址时,我正在硬编码 @dev.example.com
。
有没有办法:
检查应用当前 运行 在哪个环境中并为每个环境定义一个电子邮件 address/domain?
或
从相应 config/environments/*.rb 文件中的 SMTP 设置获取当前环境的 :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}"
这是开发环境的结果。