我發送電子郵件以下方法:從的ActionMailer如何提高/救援提供方法
class Communicate < ActionMailer::Base
def message(sub,msg,people)
subject sub
bcc people
from '[email protected]'
sent_on Time.now
body :greeting => msg
end
end
BCC包含4個或5個電子郵件地址。
在我的測試中,我注意到兩兩件事:
- ,如果電子郵件甚至一個不是實際的電子郵件(例如
fake_email_no_domain
)不發送電子郵件給任何收件人的 - 如果BCC列表中有一個壞的電子郵件地址(例如
[email protected]
),那麼它仍然發送電子郵件給其他人,但仍然拋出一個錯誤日誌。
在這兩種情況下所引發的錯誤是:
Redirected to http://localhost:3000/
Completed in 2601ms (DB: 1) | 302 Found [http://localhost/notifications]
[2010-08-04 00:49:00] ERROR Errno::ECONNRESET: Connection reset by peer
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `eof?'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `run'
/usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
問題:
- 有什麼辦法我能趕上這個錯誤?我呈現出
flash[:notice]
給用戶,我想提一提,一些糟糕的事情發生 - 如果我的BCC列表中有5封電子郵件和真的只有4電子郵件被髮送,因爲5是不存在的郵件則畢竟是做我能得到一個實際發送電子郵件的數量?我想表明我的
flash[:notice]
這個數字。我可以通過實際調用輸送方法,一個迭代而不是發送批量但我仍然不想增加計數如果沒有發送一個電子郵件獲得此數目。
我在development.rb中有該行,但刪除沒有任何效果。仍然會引發同樣的錯誤。 – Patrick 2010-08-04 05:16:44
抱歉,這是我的錯'添加或uncomment'該行不刪除也不要忘記重新啓動服務器。 – Salil 2010-08-04 05:29:11
我已經添加了吧'config.action_mailer.raise_delivery_errors = FALSE'但現在它甚至不拋出錯誤日誌,這是之前扔... – Patrick 2010-08-04 11:41:25