簡體   English   中英

僅在一個郵件程序中在Rails中注冊Mailer攔截器

[英]Register a Mailer Interceptor in Rails on just a single mailer

我正在嘗試將攔截器添加到我的Rails應用程序中的幾個郵件程序之一。 即使我試圖只在一個郵件程序上注冊它,它似乎攔截了兩者的電子郵件。 下面是一些示例代碼,說明我是如何嘗試注冊一個Mailer的。

class Mailer1 < ActionMailer::Base; end
class Mailer2 < ActionMailer::Base; end

Mailer1.register_interceptor(MailInterceptor)

是否可以只關注一個郵件? 謝謝您的幫助

您可以做的是僅在特定郵件程序上應用攔截器:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM