我不僅是新的Rails,但一般的發展,所以我很抱歉,如果這是一個基本問題。我有一個應用程序,我想發送大量電子郵件(即通訊)給選擇加入的用戶。我有兩個問題:(1)我的代碼是處理羣發郵件的最有效方式(即,我是否需要使用for ... each statement)和(2)我閱讀Stack Overflow上的其他帖子,談論重要性的郵件服務器並使用延遲作業發送電子郵件。羣發電子郵件與Rails 3
其他注意事項:
- 我在Heroku
- 我想使用SendGrid
- 我加延遲職位代碼基於this tutorial
我的問題是:
- 大多數p人們甚至對單個收件人的電子郵件使用延遲工作(即用戶註冊確認)?
- 我的代碼是做羣發郵件最有效的方法嗎?
- 例如,如果有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
我仍然會使用SendGrid甚至是一次性的電子郵件。其次,更好的交付,主要是分析。 – 2012-01-19 00:33:09
另外,您希望儘可能使用延遲作業,因爲您正在與外部服務進行交互,並且您不知道需要多長時間處理 - 讓它在後臺進行並將控制權交還給用戶。 – 2012-01-19 07:33:19