From e3c7e4ec4e692c5ecaeaa824a29bcb4d0d859aab Mon Sep 17 00:00:00 2001 From: Adrian Hinz Date: Sun, 7 Apr 2019 07:10:19 +0200 Subject: [PATCH] improve newsletter --- app/jobs/send_newsletter_job.rb | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/app/jobs/send_newsletter_job.rb b/app/jobs/send_newsletter_job.rb index b4ad718..6b97945 100644 --- a/app/jobs/send_newsletter_job.rb +++ b/app/jobs/send_newsletter_job.rb @@ -3,12 +3,23 @@ class SendNewsletterJob < ApplicationJob queue_as :default def perform - emails = Email.where('sended = 0') - emails.each do |em| - NewsletterMailer.news_mail(em.email).deliver - em.sended = true - em.save - sleep(6) + loop do + emails = Email.where('sended = 0') + break if emails.count.zero? + begin + emails.each do |em| + NewsletterMailer.news_mail(em.email).deliver + em.sended = true + em.save + sleep(6) + end + rescue Net::SMTPUnknownError => e + # Net::SMTPUnknownError (could not get 3xx (550: 550 5.4.5 + # Daily user sending quota exceeded. p3sm37406639wrx.71 - gsmtp + Rails.logger.error e.message + Rails.logger.error e.backtrace.join("\n") + sleep(3600) + end end end end