我正在使用 Rails 4.2,想为特定环境的所有 ActionMailer 邮件程序覆盖 to
字段。在这种情况下,我想覆盖登台中使用的所有邮件程序的 to 字段。我的目标是让暂存环境以与生产环境完全相同的方式发送邮件,但将其全部转储到测试收件箱中。
我知道有一些服务可以对此提供帮助,但我的目标是使用我的生产 API 进行暂存交付作为彻底测试。
我希望我可以在邮件程序关闭之前使用混合或其他东西来重置 to
字段。
最佳答案
不确定您使用的是哪个版本的 Rails,但您可以考虑使用新的邮件拦截器来完成此操作。
主要优点是它不会直接打乱您的 ActionMailer 类。
http://guides.rubyonrails.org/action_mailer_basics.html#intercepting-emails
复制他们的例子:
class SandboxEmailInterceptor
def self.delivering_email(message)
message.to = ['sandbox@example.com']
end
end
config/initializers/sandbox_email_interceptor.rb:
ActionMailer::Base.register_interceptor(SandboxEmailInterceptor) if Rails.env.staging?
关于ruby-on-rails - 根据环境覆盖 ActionMailer 中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376728/