Электронная почта не отправляется всем пользователям с 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, и он работает достаточно для отправки хотя бы одного электронного письма, но, возможно, что-то не так с обработкой ошибок.

Спасибо за любую помощь

0 ответов

Другие вопросы по тегам