我不仅是对Rails新手,而且对开发一般也是如此,如果这是一个基本问题,请原谅。我有一个应用程序,我想向选择加入的用户发送大量电子邮件(例如电子报)。 我有两个问题:(1)我的代码是否是处理群发邮件的最有效方式(例如,我是否需要使用for...each语句) (2)我在Stack Overflow上阅读了其他帖子,谈到邮件服务器的重要性和使用延迟任务来发送电子邮件。
请注意以下其他事项:
- 我在Heroku上
- 我考虑使用SendGrid
- 我添加了基于这个教程的延迟任务代码
我的问题是:
- 即使是单个收件人的电子邮件(例如用户注册确认),大多数人是否都使用延迟任务?
- 我的代码是进行群发电子邮件的最有效方法吗?
- 例如,如果有1000个用户,如果我向每个人发送相同的电子邮件并使用BCC,它会在资源(带宽、CPU等)上造成很大的影响吗?如果是这样,我只需将哈希传递给电子邮件发送程序(即删除for...each并将opt_in_user参数更改为@opt_in_users),并将收件人更改为BCC?
谢谢!
控制器
commmunity_users = UserCommunityRelation.find('community_id = ? and status = ?,' current_community, "approved" )
@opt_in_users = User.find('opt_in = ?,' true)
@opt_in_users.each do |opt_in_user|
UserMailer.send_later(:deliver_announcement, opt_in_user)
end
UserMailer.rb
def announcement(opt_in_user)
mail(:to => "#{opt_in_user.username} <#{opt_in_user.email}>", :subject => "Huge Announcement!")
end