Задача Rails rake, которая проходит через нескольких получателей электронной почты без использования bcc - PullRequest
0 голосов
/ 09 июля 2020

У меня есть задача Rails rake, которую я использую для отправки электронных писем, и единственный способ заставить мой почтовик отправлять нескольким получателям - это собрать их в почтовом ящике, а затем перечислить их как получателей b cc, как это :

class SubscribersMailer < ApplicationMailer
  def send_daily_updates
    @subscribers = Subscriber.all
    recipients = @subscribers.collect(&:email).join(",")

    @subscribers.each do |subscriber|
      mail(to: "***@example.com.com", subject: "Email subject", :bcc => recipients)
    end
  end
end

И в своей задаче я просто вызываю это:

SubscribersMailer.send_daily_updates.deliver_now

Когда я запускаю задачу rake, она успешно отправляет электронное письмо на каждый адрес, но это не так. Кажется, это идеальный способ сделать это. Рассылка массовых писем с кучей адресов в поле b cc - хороший способ пометить его как спам.

Как лучше передать l oop через получателей? Что делать в задаче rake или в почтовой программе?

1 Ответ

1 голос
/ 10 июля 2020

Советую использовать только одного подписчика в почтовом ящике и вызывать его для каждого подписчика в грабельной задаче. Например,

class SubscribersMailer < ApplicationMailer
  def send_daily_updates(subscriber)
    mail(to: subscriber.email, subject: "Email subject")
  end
end
Subscriber.find_each do |subscriber|
  SubscribersMailer.send_daily_updates(subscriber).deliver_now
end

Это создаст кучу электронных писем, но подписчики будут видеть только свой адрес электронной почты в полученном письме. Это более безопасно (вы не раскрываете адреса электронной почты всех подписчиков каждому подписчику) и снижает риск того, что он будет помечен как спам. Sidekiq, Rescue и др. c.)

...