2009-07-30 109 views
0

我正在使用Action Mailer发送邮件活动的Rails项目。目前,我一直在用一个普通的旧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' 

不要任何人有任何想法如何我可以查明我的问题?

回答

0

使用telnet,如果它没有打开,检查防火墙和邮件服务器configuration.Also你可以试试这个为你的ActionMailer设置:

:authentication => :plain (if so), 
:enable_starttls_auto => true