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