2009-07-30 2 views
0

Я работаю над проектом Rails, который использует Action Mailer для отправки почтовых кампаний. На данный момент я тестировал все с простой старой учетной записи GMail. Теперь ближе к выпуску, и я решил переключить SMTP-сервер на наш локальный почтовый сервер.Отладка ошибки тайм-аута 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' 

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

ответ

2

Проблема не в рубине, а на сервере электронной почты. Убедитесь, что сервер электронной почты работает (testing email server through telnet console) и повторите попытку.

0

Используйте телнет на почтовом сервере на 465 порт, если его не открыт, проверьте брандмауэр и почтовый сервер configuration.Also вы можете попробовать это для настройки ActionMailer:

:authentication => :plain (if so), 
:enable_starttls_auto => true 
Смежные вопросы