有人可以向我解释在哪里可以找到有关属性 delivery_handler 的具体说明吗?什么样的对象?一串?或者其他什么?
以及该指令的工作原理:
filteredMailers.include?(message.delivery_handler)
我是从这个邮件观察员context中获取的:
class DevelopmentMailInterceptor
def self.delivering_email(message)
filteredMailers = %w[
NotificationMailer
]
if filteredMailers.include?(message.delivery_handler)
message.subject = "[filter] To:#{message.to} - #{message.subjec}"
message.to = 'logs@mail.com'
end
return message
end
end
我为消息类找到了这个reference,但是对于什么类型的对象是delivery_handler仍然非常困惑。
欢迎任何帮助。 谢谢你的解释。
答案 0 :(得分:0)
记录在https://github.com/mikel/mail/blob/2.6.1/lib/mail/message.rb#L138
您应该为其分配一个实现deliver_mail
方法的类,该方法可以/应该执行以下任何操作(引自上面的链接):
# * Appending the mail object to Mail.deliveries as you see fit.
# * Checking the mail.perform_deliveries flag to decide if you should
# actually call :deliver! the mail object or not.
# * Checking the mail.raise_delivery_errors flag to decide if you
# should raise delivery errors if they occur.
# * Actually calling :deliver! (with the bang) on the mail object to
# get it to deliver itself.
您也可以拨打deliver!
,而不是拨打yield
,这会告诉Mail调用自己的私有do_delivery
方法。
ActionMailer为其分配邮件程序类(即class MyMailer < ActionMailer::Base
)source中的MyMailer,然后依赖于ActionMailer::Base
delivery_mail
的实现(除非您选择覆盖它) )。