Отправка массовой рассылки "Weekly Digest" из приложения Rails 3 - PullRequest
3 голосов
/ 27 марта 2012

Я создал задачу rake для отправки писем своим подписчикам (зарегистрированным пользователям).

digest.rake:

desc "Send digest"
task :send_digest => :environment do
   Notifier.digest.deliver #if Time.now.monday?
end

Уведомитель :: digest

 def digest(periodicity = "weekly")

   @from = "biowatts@gmail.com"

   @bcc = ""
     User.where("digest_periodicity LIKE ?", periodicity).each do |u|
       @bcc += u.email_address + ","
     end
   @bcc = Rails.env.production? ? @bcc[0..-1] : "biowatts@gmail.com"

   @message_subject = Rails.env.production? ? "#{periodicity.capitalize} Digest" : "#{periodicity.capitalize} Digest (Test)"

   @public_projects = PowerPlant.where("public = ?", true).order("created_at desc")  

   mail(:bcc => @bcc, :subject => @message_subject)

end

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

$ heroku rake send_digest --app biowatts
> rake aborted!
> 452-4.5.3 Your message has too many recipients. For more information regarding

Я использую smtp.gmail.com, но я также пытался использовать мой почтовый сервер godaddy smtp,но похоже, что я столкнусь с подобными проблемами.

МОЙ ВОПРОС: Как периодически отправлять электронную почту в список моих подписчиков?

Примечание. Это письмо основано на том, что находится в моембаза данных ...

надеюсь, вы можете помочь,

joel

1 Ответ

2 голосов
/ 03 июля 2012

Ваш код в порядке. Вопрос в правилах для Gmail. Вы не можете отправить столько электронных писем одновременно. Если у вас когда-нибудь был взломан аккаунт друга, вы увидите, что он отправил электронное письмо примерно 100 получателям и повторил.

Решение: Имейте несколько электронных писем и вращайтесь (это плохая идея, потому что это вызовет другие защиты от спама из gmail)

Используйте постоянный контакт или другую рассылку - идеально подходит для вашей ситуации

Используйте SendGrid - они, скорее всего, отбросят вас, поскольку вы «спамите» в их глазах, даже если вы на самом деле не спамите.

...