1

我在哪里可以找到 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!'
4

2 回答 2

0

该错误Errno::EHOSTUNREACH: No route to host - connect(2)表示路由问题,可能与错误的 IP 地址有关。您可能在/etc/hosts(将主机名映射到 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
于 2013-07-12T08:01:45.940 回答
0

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

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

如果您不进行任何配置,则库默认使用正在侦听“localhost”端口 25 的邮件服务器。在这种情况下,“EHOSTUNREACH: No route to host”错误很可能意味着:

  • 您的计算机的“localhost”有一个错误的“hosts”条目,或者

  • 本地主机 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" 条目指向一个你不能与之交谈的服务器。如果条目中有错误的值,请修复它。否则这是系统(或网络)管理问题,而不是编程问题。

于 2013-07-12T09:34:12.240 回答