无主机路由 - 连接(2)(Errno :: EHOSTUNREACH)

时间:2013-07-12 07:59:10

标签: java ruby-on-rails ruby linux

在哪里可以找到SMTP服务器的配置?

**************/usr/lib/ruby/1.8/net/smtp.rb:551:in `initialize': No 
route to host - connect(2) (Errno::EHOSTUNREACH)
 from 
/usr/lib/ruby/1.8/net/smtp.rb:551:in `open'
 from 
/usr/lib/ruby/1.8/net/smtp.rb:551:in `do_start'
 from 
/usr/lib/ruby/1.8/timeout.rb:67:in `timeout'
 from 
/usr/lib/ruby/1.8/timeout.rb:101:in `timeout'
 from 
/usr/lib/ruby/1.8/net/smtp.rb:551:in `do_start'
 from 
/usr/lib/ruby/1.8/net/smtp.rb:525:in `start'
 from 
/usr/lib/ruby/gems/1.8/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:112:in 
`deliver!'
 from 
/usr/lib/ruby/gems/1.8/gems/mail-2.5.4/lib/mail/message.rb:248:in 
`deliver!'

2 个答案:

答案 0 :(得分:0)

错误Errno::EHOSTUNREACH: No route to host - connect(2)表示路由问题,可能与错误的IP地址有关。您可能在/etc/hosts(将hosts file将主机名映射到IP地址)或其他地方指定了错误的IP,例如在config / deploy.rb等中。如果您使用本地网络DHCP服务器,IP地址可以经常更改。

begin
  # problematic code
rescue Errno::EHOSTUNREACH
  # log the error
  # let the User know
rescue
  # handle other exceptions
end

答案 1 :(得分:0)

您似乎正在使用Ruby“Mail”库:http://rubygems.org/gems/mail

从我阅读的文档中,没有配置文件。相反,库(可选)在Ruby代码中配置。

如果您不进行任何配置,则库默认使用正在侦听“localhost”端口25的邮件服务器。在这种情况下,“EHOSTUNREACH:无主机路由”错误很可能意味着:< / p>

  • 您的计算机有“localhost”的错误“主机”条目,或

  • 未正确配置本地主机IP设备。

无论哪种方式,系统管理问题都不是编程问题。对于SO来说这是偏离主题的...而且你还没有提供足够的信息来帮助我们诊断/解决它。

否则,您的代码将包含以下内容:

Mail.defaults do
  delivery_method :smtp, { :address => "smtp.me.com",
                           :port => 587,
                           :domain => 'your.host.name',
                           :user_name => '<username>', 
                           :password => '<password>',
                           :authentication => 'plain',
                           :enable_starttls_auto => true }
end

问题是“:address”条目指向您无法与之交谈的服务器。如果条目中包含错误的值,请进行修复。否则,这是系统(或网络)管理问题,而不是编程问题。