Отладка ошибки тайм-аута SMTP - PullRequest
0 голосов
/ 30 июля 2009

Я работаю над проектом Rails, который использует Action Mailer для рассылки почтовых кампаний. На данный момент я тестирую все с простой старой учетной записи GMail. Сейчас все ближе к выпуску, и я решил переключить сервер smtp на наш локальный почтовый сервер.

Это все хорошо, пока мы не попытаемся отправить почту. С этими новыми настройками сервера smtp почтовый клиент не делает ничего, кроме времени ожидания:

MY_SMTP_SETTINGS = {
  :address => 'oz.some.server.edu',
  :port => 465,
  :user_name => MY_USERNAME,
  :authentication => :login,
  :password => MY_PASSWORD
}

Это трассировка стека от ошибки, полученной через некоторое время после попытки отправить кампанию:

    Timeout::Error: execution expired
    from /opt/local/lib/ruby/1.8/timeout.rb:60:in `rbuf_fill'
    from /opt/local/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
    from /opt/local/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
    from /opt/local/lib/ruby/1.8/net/protocol.rb:126:in `readline'
    from /opt/local/lib/ruby/1.8/net/smtp.rb:911:in `recv_response'
    from /opt/local/lib/ruby/gems/1.8/gems/ambethia-smtp-tls-1.1.2/lib/smtp-tls.rb:19:in `do_start'
    from /opt/local/lib/ruby/1.8/net/smtp.rb:921:in `critical'
    from /opt/local/lib/ruby/gems/1.8/gems/ambethia-smtp-tls-1.1.2/lib/smtp-tls.rb:19:in `do_start'
    from /opt/local/lib/ruby/1.8/net/smtp.rb:525:in `start'
    from /opt/local/lib/ruby/gems/1.8/gems/actionmailer-2.3.2/lib/action_mailer/base.rb:681:in `perform_delivery_smtp'
    from /opt/local/lib/ruby/gems/1.8/gems/actionmailer-2.3.2/lib/action_mailer/base.rb:523:in `__send__'
    from /opt/local/lib/ruby/gems/1.8/gems/actionmailer-2.3.2/lib/action_mailer/base.rb:523:in `deliver!'
    from /opt/local/lib/ruby/gems/1.8/gems/actionmailer-2.3.2/lib/action_mailer/base.rb:395:in `method_missing'
    from /Users/ryan/Development/gsoc/cohort/repo/app/models/freemailer_campaign.rb:39:in `send_campaign'
    from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_collection.rb:364:in `method_missing_without_paginate'
    from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:219:in `method_missing'
    from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:219:in `each'
    from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:219:in `send'
    from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:219:in `method_missing'
    from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_collection.rb:364:in `method_missing_without_paginate'
    from /Users/ryan/Development/gsoc/cohort/repo/vendor/plugins/will_paginate/lib/will_paginate/finder.rb:167:in `method_missing'
    from /Users/ryan/Development/gsoc/cohort/repo/app/models/freemailer_campaign.rb:37:in `send_campaign'

Кто-нибудь знает, как я могу определить свою проблему?

Ответы [ 4 ]

2 голосов
/ 30 июля 2009

Проблема не в ruby, а в почтовом сервере. Убедитесь, что почтовый сервер работает ( тестирование почтового сервера через консоль telnet ) и повторите попытку.

0 голосов
/ 20 февраля 2011

Известная ошибка Ruby:

http://lindsaar.net/2007/12/9/rbuf_filltimeout-error

0 голосов
/ 30 июля 2009

Используйте telnet на своем почтовом сервере на порту 465, если он не открыт, проверьте брандмауэр и конфигурацию почтового сервера. Также вы можете попробовать это в настройках своего actionmailer:

 :authentication => :plain (if so),
 :enable_starttls_auto => true
0 голосов
/ 30 июля 2009

Попробуйте подключиться к SMTP-серверу через telnet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...