Rails 3 Mailer Errno :: ECONNRESET GMail

时间:2011-08-30 19:49:06

标签: ruby-on-rails ruby-on-rails-3 email smtp actionmailer

我随机得到错误:

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
}

有时它工作正常,有时它会抛出此错误。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这可能是一个简单的事情,如超时或结束时服务器负载过多。我建议抢救异常并重试,然后在一定次数的重试后记录错误并失败(或通知某人)。沿着这些方向的东西

tries = 0
begin
  UserMailer.activation(@user).deliver
rescue Errono::ECONNRESET => e
  if (tries += 1) > 2
    retry
  else
   # log error
  end
end