Save each email before sending rails 4

前端 未结 2 1156
没有蜡笔的小新
没有蜡笔的小新 2021-02-09 18:14

I want to keep track of all triggered emails by the application into a db table, so that i can have a log which emails are sent and to whom.

Kindly suggest me the best

相关标签:
2条回答
  • 2021-02-09 18:51

    I am doing some research on this and it seems like https://github.com/ankane/ahoy_email is a nice gem to accomplish this. It uses an interceptor internally like the accepted answer. It also integrates with a free event tracking library that has a number of different backends. Might be something to consider if you're starting something like this today.

    0 讨论(0)
  • 2021-02-09 18:57

    I have solved this using the following way:

    created a class in lib directory

    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
    

    In config/initalizers/setup_mail.rb

    ActionMailer::Base.register_interceptor(MyProjectMailLogger)
    

    You might need to add the following line in the application.rb file as its not include files from lib directory:

    config.autoload_paths += %W(#{config.root}/lib)
    

    Yay!! and i logged my emails.

    0 讨论(0)
提交回复
热议问题