如何取消delivery_email钩子中的电子邮件?

Sam*_*ong 5 ruby-on-rails actionmailer

我正在实现一个电子邮件队列。我使用拦截器。

class MyInterceptor
  def self.delivering_email(mail)
    Email.queue(mail)
  end
end

ActionMailer::Base.register_interceptor(MyInterceptor)
Run Code Online (Sandbox Code Playgroud)

但是此代码以正常方式发送电子邮件。如何停止发送电子邮件?我将手动从队列发送电子邮件。

谢谢。

山姆

Eli*_*kes 5

设置Mail::Message#perform_deliveriesfalse

class NeverDeliverInterceptor
  def self.delivering_email(message)
    message.perform_deliveries = false
  end
end

ActionMailer::Base.register_interceptor(NeverDeliverInterceptor)
Run Code Online (Sandbox Code Playgroud)

有关来源和其他用法,请参见API文档


Sam*_*ong 2

我找到了一个解决方法。我只是将 Delivery_method 设置为:test。