diff --git a/app/controllers/admin/newsletters_controller.rb b/app/controllers/admin/newsletters_controller.rb index 3cc2853c1..12522927c 100644 --- a/app/controllers/admin/newsletters_controller.rb +++ b/app/controllers/admin/newsletters_controller.rb @@ -48,7 +48,10 @@ class Admin::NewslettersController < Admin::BaseController @newsletter = Newsletter.find(params[:id]) if @newsletter.valid? - Mailer.newsletter(@newsletter).deliver_later + @newsletter.list_of_recipients.each do |recipient| + Mailer.newsletter(@newsletter, recipient).deliver_later + end + @newsletter.update(sent_at: Time.current) flash[:notice] = t("admin.newsletters.send_success") else diff --git a/app/mailers/mailer.rb b/app/mailers/mailer.rb index 5b667d477..a46e2866a 100644 --- a/app/mailers/mailer.rb +++ b/app/mailers/mailer.rb @@ -126,13 +126,11 @@ class Mailer < ApplicationMailer end end - def newsletter(newsletter) + def newsletter(newsletter, recipient) @newsletter = newsletter - @email_to = newsletter.list_of_recipients + @email_to = recipient.email - @email_to.map(&:email).uniq.each do |recipient| - mail(to: recipient, from: @newsletter.from, subject: @newsletter.subject) - end + mail(to: @email_to, from: @newsletter.from, subject: @newsletter.subject) end private