From 8d2a10374432a80aa690c9ad5ff9e1ce20338b5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Checa?= Date: Tue, 27 Feb 2018 13:12:34 +0100 Subject: [PATCH] Changed how newsletters controller and mailer handle recipients Now newsletters controller calls the Mailer method to send a newsletter once per user. --- app/controllers/admin/newsletters_controller.rb | 5 ++++- app/mailers/mailer.rb | 8 +++----- 2 files changed, 7 insertions(+), 6 deletions(-) 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