我随机得到错误:
Errno::ECONNRESET (Connection reset by peer):
尝试发送电子邮件时:
UserMailer.activation(@user).deliver
在初始化程序中,我将smtp设置设置为使用我的Google Apps帐户:
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "mydomain.com",
:user_name => "tyler@mydomain.com",
:password => "tylerspw",
:authentication => "plain",
:enable_starttls_auto => true
}
有时它工作正常,有时它会抛出此错误。有什么想法吗?
答案 0 :(得分:3)
这可能是一个简单的事情,如超时或结束时服务器负载过多。我建议抢救异常并重试,然后在一定次数的重试后记录错误并失败(或通知某人)。沿着这些方向的东西
tries = 0
begin
UserMailer.activation(@user).deliver
rescue Errono::ECONNRESET => e
if (tries += 1) > 2
retry
else
# log error
end
end