2013-07-12 148 views
1

我在哪裏可以找到SMTP服務器的配置?沒有路由到主機 - 連接(2)(Errno :: EHOSTUNREACH)

**************/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!' 

回答

0

你似乎是使用Ruby「郵件」庫:http://rubygems.org/gems/mail

從我的文檔閱讀,沒有配置文件。相反,庫(可選)使用Ruby代碼進行配置。

如果您沒有進行任何配置,庫默認使用正在「localhost」端口25上偵聽的郵件服務器。在這種情況下,「EHOSTUNREACH:No route to host」錯誤最有可能意味着:

  • 您的計算機要麼有一個不好的「主機」條目爲「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 

的問題將是,「:地址」項指向,你不能跟一個服務器。如果條目中有錯誤的值,請修復它。否則,這是一個系統(或網絡)管理問題,而不是編程問題。

+0

問題已解決,Tooltwist控制器內的配置mail-conf.rb正好指向「死」中繼服務器。 – meshackofi

0

錯誤Errno::EHOSTUNREACH: No route to host - connect(2)表示路由問題,可能與錯誤的IP地址有關。您可能在/etc/hosts(將主機名映射到IP地址的hosts file)或其他地方(例如在config/deploy.rb等中)中指定了錯誤的IP。如果使用本地網絡與DHCP服務器,IP地址可能會更改經常。

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

hosts文件配置正確。 IP配置爲靜態。 – meshackofi

相關問題