使用与ActionMailer不同的delivery_method只用于一封电子邮件?

d11*_*wtq 6 ruby-on-rails actionmailer

给定MailerRails 3中的一个实例,有没有办法覆盖delivery_method它?

我想通过高优先级传输推送某些电子邮件,而其他人使用更繁忙,低优先级的方法.

我可以在运行时调整配置并再次更改它,但这充满了潜在的副作用.

d11*_*wtq 6

事实证明,这样做只会影响这个特定的梅勒,而不会ActionMailer::Base全局变化.

class SomeMailer < ActionMailer::Base
  self.delivery_method = :high_priority  

  def some_email(params)
  end
end
Run Code Online (Sandbox Code Playgroud)

AnotherMailer如果您预先拥有实例,也可以执行此操作(警告:将影响所有实例):

mail = AnotherMailer.whatever_email
mail.delivery_handler.delivery_method = :something_else
Run Code Online (Sandbox Code Playgroud)

这些似乎没有记录,但工作.