Сохраните каждое письмо перед отправкой rails 4
Я хочу отслеживать все инициированные сообщения электронной почты приложением в таблице БД, так что я могу иметь журнал, какие сообщения электронной почты отправляются и кому.
Пожалуйста, предложите мне наилучшее возможное решение.
2 ответа:
Я решил это следующим образом:
Создал класс в каталоге 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
В config / initalizers / setup_mail.rb
ActionMailer::Base.register_interceptor(MyProjectMailLogger)
Возможно, вам потребуется добавить в приложение следующую строку.rb файл как его не включают файлы из каталога lib:
config.autoload_paths += %W(#{config.root}/lib)
Ура!! и я регистрировал свои электронные письма.
Я провожу некоторые исследования по этому вопросу, и кажется, что https://github.com/ankane/ahoy_email является хорошим камнем для достижения этой цели. Он использует перехватчик внутренне, как принятый ответ. Он также интегрируется с бесплатной библиотекой отслеживания событий , которая имеет несколько различных бэкэндов. Может быть, стоит подумать, если вы начинаете что-то подобное сегодня.