Changed how newsletters controller and mailer handle recipients
Now newsletters controller calls the Mailer method to send a newsletter once per user.
This commit is contained in:
@@ -48,7 +48,10 @@ class Admin::NewslettersController < Admin::BaseController
|
|||||||
@newsletter = Newsletter.find(params[:id])
|
@newsletter = Newsletter.find(params[:id])
|
||||||
|
|
||||||
if @newsletter.valid?
|
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)
|
@newsletter.update(sent_at: Time.current)
|
||||||
flash[:notice] = t("admin.newsletters.send_success")
|
flash[:notice] = t("admin.newsletters.send_success")
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -126,13 +126,11 @@ class Mailer < ApplicationMailer
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def newsletter(newsletter)
|
def newsletter(newsletter, recipient)
|
||||||
@newsletter = newsletter
|
@newsletter = newsletter
|
||||||
@email_to = newsletter.list_of_recipients
|
@email_to = recipient.email
|
||||||
|
|
||||||
@email_to.map(&:email).uniq.each do |recipient|
|
mail(to: @email_to, from: @newsletter.from, subject: @newsletter.subject)
|
||||||
mail(to: recipient, from: @newsletter.from, subject: @newsletter.subject)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
Reference in New Issue
Block a user