我正在尝试将拦截器添加到我的Rails应用程序中的几个邮件程序之一。即使我试图只在一个邮件程序上注册它,它似乎拦截了两者的电子邮件。下面是一些示例代码,说明我是如何尝试注册一个Mailer的。
class Mailer1 < ActionMailer::Base; end
class Mailer2 < ActionMailer::Base; end
Mailer1.register_interceptor(MailInterceptor)
是否可以只关注一个邮件?谢谢你的帮助
答案 0 :(得分:0)
您可以做的是仅在特定邮件程序上应用拦截器:
class SpecificMailerInterceptor
FILTERED_MAILERS = %w(SpecificMailer)
def self.delivering_email(message)
return if deliver?(message)
message.perform_deliveries = false
end
def self.deliver?(message)
# If you are in the other mailers always deliver message
return true unless FILTERED_MAILERS.include?(message.delivery_handler.to_s)
# Apply interceptor logic here
end
end