summaryrefslogtreecommitdiff
path: root/app/helpers/mailer_helper.rb
blob: dbacf8175fe00e78cc3db844a006c6a9f34ab04a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module MailerHelper
  def background_mailer(mails)
    Thread.new do
      begin
        mails.each do |mail|
          begin
            mail.deliver_now
          rescue => e
            Rails.logger.error "---"
            Rails.logger.error "WARNING: '#{mail.try(:subject)}' failed for recipient #{mail.try(:to)}"
            Rails.logger.error e.message
            Rails.logger.error "---"
          end
        end
      rescue => e
        Rails.logger.error "---"
        Rails.logger.error "WARNING: Problem while processing mails:"
        Rails.logger.error e.message
        Rails.logger.error "---"
      ensure
        # threads open their own DB connection
        ActiveRecord::Base.connection.close
        Rails.logger.flush
      end
    end
  end
end