Rails 3 Mailer Errno :: ECONNRESET GMail - PullRequest
       12

Rails 3 Mailer Errno :: ECONNRESET GMail

1 голос
/ 30 августа 2011

Я СЛУЧАЙНО получаю ошибку:

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 Ответ

3 голосов
/ 31 августа 2011

Это может быть что-то такое же простое, как тайм-аут или чрезмерная загрузка сервера с их стороны. Я бы предложил спасти исключение и повторить попытку, а затем после определенного числа попыток зарегистрировать ошибку и завершиться неудачей (или уведомить кого-либо). Что-то в этом роде

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