我有一个拦截器:DevelopmentMailInterceptor
和初始化程序 setup_mail.rb
启动拦截器。
但我想将它应用于特定的邮件程序(拦截 NotificationMailer
而不是其他邮件。
所以我设置在setup_mail.rb
:
`NotificationMailer.register_interceptor(DevelopmentMailInterceptor)
但随后所有邮件都被拦截了,就好像我写过一样
ActionMailer::Base.register_interceptor(DevelopmentMailInterceptor)
我怎样才能过滤这个?
最佳答案
我通过深入探索 message
找到了解决方案delivering_email
的参数邮件拦截器的方法。
class DevelopmentMailInterceptor
def self.delivering_email(message)
filteredMailers = %w[
NotificationMailer
]
if filteredMailers.include?(message.delivery_handler)
message.subject = "[filter] To:#{message.to} - #{message.subject}"
message.to = 'logs@mail.com'
end
return message
end
end
@Intrepidd 的回答仍然正确,因为拦截器应用于整个
Mail
类,但我找到了解决我想要实现的目标的方法。
关于ruby-on-rails - Rails 邮件拦截器仅用于特定邮件程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19408376/