Электронная почта не отправляется всем пользователям с delivery_later
Я перебираю массив идентификаторов подписчиков, чтобы отправить каждому подписчику электронное письмо, но по какой-то причине не все подписчики получают письмо.
Вот контроллер, вызывающий метод модели:
class Admin::EmailDigestsController < ApplicationController
def send_digest
article_ids = params[:article_ids]
subject = params[:subject]
EmailDigest.send_email_digest(article_ids, subject)
redirect_to email_digests_path
end
end
А вот и email_digest.rb:
class EmailDigest < ActiveRecord::Base
def self.send_email_digest(article_ids, subject)
subscribers = EmailDigest.where.not(status: "Inactive").ids
subscribers.each do |subscriber|
DigestMailer.weekly_digest(subscriber, article_ids, subject).deliver_later
end
end
end
А вот и digest_mailer.rb:
class DigestMailer < ActionMailer::Base
default from: "secret@secret.com"
def weekly_digest(subscriber, article_ids, subject)
@subscriber = EmailDigest.find_by_id(subscriber)
@subject = subject
articles_arr = []
article_ids.each do |f|
articles_arr << Article.find_by_id(f)
end
@articles = articles_arr
mail(to: @subscriber.email,
subject: subject)
end
end
У меня также настроен sidekiq, и он работает достаточно для отправки хотя бы одного электронного письма, но, возможно, что-то не так с обработкой ошибок.
Спасибо за любую помощь