ActionMailer 攔截器

Action Mailer 為攔截器方法提供了鉤子。這些允許你註冊在郵件傳遞生命週期中呼叫的類。

攔截器類必須實現:deliver_email(message) 方法,該方法將在傳送電子郵件之前呼叫,允許你在電子郵件到達傳遞代理之前對其進行修改。你的類應該直接對傳入的 Mail::Message 例項進行任何所需的修改。

對於開發人員來說,向自己而不是真實使用者傳送電子郵件會很有用。

註冊動作郵件攔截器的示例:

# config/initializers/override_mail_recipient.rb

if Rails.env.development? or Rails.env.test?
  class OverrideMailRecipient
    def self.delivering_email(mail)
      mail.subject = 'This is dummy subject'
      mail.bcc = 'test_bcc@noemail.com'
      mail.to = 'test@noemail.com'
    end
  end
  ActionMailer::Base.register_interceptor(OverrideMailRecipient)
end