有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java没有到主机连接的路由(2)(Errno::EHOSTUNREACH)

在哪里可以找到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) 个答案

  1. # 1 楼答案

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

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

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

    • 您的计算机的“localhost”的“hosts”条目不正确,或者

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

    不管怎样,这都是一个系统管理问题,而不是编程问题。这是离题的,所以。。。你还没有提供足够的信息来帮助我们诊断/解决它

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

    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”条目指向的是一个无法与之通话的服务器。如果条目中有错误的值,请修复它。否则这是一个系统(或网络)管理问题,而不是编程问题

  2. # 2 楼答案

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

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