ruby-on-rails - 从 Rails 3 应用程序发送批量 "Weekly Digest"电子邮件

标签 ruby-on-rails smtp gmail

我创建了一个 rake 任务来向我的订阅者(注册用户)发送电子邮件。

消化. rake :

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

通知程序::摘要
 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)

结尾

在我尝试部署之前,这一切正常。
在我的生产环境中,我的收件人列表超过 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 邮件服务器,
但看起来我将面临类似的问题。

我的问题:如何定期向我的订阅者列表发送电子邮件?

注意这封电子邮件是建立在我的数据库中的内容之上的...

希望能帮到你

乔尔

最佳答案

你的代码没问题。问题是 gmail 的规则。您不能一次发送那么多电子邮件。如果您曾经有 friend 的帐户被黑,您会看到他们将电子邮件发送给 100 左右的收件人并重复。

解决方案:
有多个电子邮件并轮换(这是一个坏主意,因为它会触发来自 gmail 的其他垃圾邮件防御)

使用 Constant Contact 或其他一些散装邮件 - 非常适合您的情况

使用 SendGrid - 即使您不是真正的垃圾邮件,他们也可能会因为您在他们眼中“垃圾邮件”而放弃您。

关于ruby-on-rails - 从 Rails 3 应用程序发送批量 "Weekly Digest"电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9880926/

相关文章:

ruby-on-rails - Rails 3 中的插件 vs 引擎,作为 gem 发布

php - Laravel 5 邮箱重置密码

java - 用于发送电子邮件警报的 Web 应用程序

java - 为什么我会收到 java.net.ConnectException : Connection refused?

c# - 如何使用 MailKit 发送电子邮件?

email - 如何避免谷歌邮件服务器要求我通过浏览器登录?

ruby-on-rails - accepts_nested_attributes_for 忽略空白值

ruby-on-rails - Rails docker应用程序捆绑 rake 被中止

google-chrome - mailto 链接在 Chrome Gmail 中被阻止为不安全内容

javascript - Rails Controller 不接受 JSON?