ruby-on-rails – 仅针对特定邮件程序的Rails邮件拦截器
发布时间:2020-12-17 04:06:17 所属栏目:百科 来源:网络整理
导读:我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将它应用于特定的邮件程序(拦截NotificationMailer而不是其他邮件. 所以我在setup_mail.rb中设置: `NotificationMailer.register_interceptor(Developmen
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb.
但我想将它应用于特定的邮件程序(拦截NotificationMailer而不是其他邮件. 所以我在setup_mail.rb中设置: `NotificationMailer.register_interceptor(DevelopmentMailInterceptor) 但随后所有邮寄者都被拦截了,就像我写的一样 ActionMailer::Base.register_interceptor(DevelopmentMailInterceptor) 我该如何过滤? 解决方法
我通过深入探索邮件拦截器的deliver_email方法的message参数找到了解决方案.
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类,但我找到了我希望实现的方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |