Bar*_*ran 6 actionmailer ruby-on-rails-4
我希望将应用程序中所有触发的电子邮件跟踪到数据库表中,以便我可以记录发送电子邮件的对象以及发送给谁.
请建议我最好的解决方案.
我用以下方法解决了这个问题:
在lib目录中创建了一个类
class MyProjectMailLogger
def self.delivering_email(message)
@to = message.to.to_s
@subject = message.subject.to_s
@message = message.body.to_s
EmailQueue.create!(:receipient_email => @to, :subject => @subject, :message => @message, :email_status_id => 3)
end
end
Run Code Online (Sandbox Code Playgroud)
在config/initalizers/setup_mail.rb中
ActionMailer::Base.register_interceptor(MyProjectMailLogger)
Run Code Online (Sandbox Code Playgroud)
您可能需要在application.rb文件中添加以下行,因为它不包含lib目录中的文件:
config.autoload_paths += %W(#{config.root}/lib)
Run Code Online (Sandbox Code Playgroud)
好极了!!我记录了我的电子邮件.
| 归档时间: |
|
| 查看次数: |
2620 次 |
| 最近记录: |