在说 smtp.start 时获取“`initialize': getaddrinfo: nodename nor servname provided, or not known (SocketErr

Posted

技术标签:

【中文标题】在说 smtp.start 时获取“`initialize\': getaddrinfo: nodename nor servname provided, or not known (SocketError)”【英文标题】:Getting "`initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)" when saying smtp.start在说 smtp.start 时获取“`initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)” 【发布时间】:2013-01-28 14:47:58 【问题描述】:

我正在尝试使用我的 gmail 在一个非常简单的 ruby​​ 脚本中发送电子邮件。这是应该向RECEIVERfrom SENDER 发送电子邮件的部分,这就是我。对于PASSWD我使用我的gmail密码。

smtp = Net::SMTP.new 'smtp.gmail.com', 587
smtp.enable_starttls
smtp.start('gmail.com', SENDER, PASSWD, :login)
smtp.send_message message, SENDER, RECEIVER
smtp.finish

现在,我总是收到这个错误:

/Users/David/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/net/smtp.rb:540:in `initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)
from /Users/David/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/net/smtp.rb:540:in `open'
from /Users/David/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/net/smtp.rb:540:in `tcp_socket'
from /Users/David/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/net/smtp.rb:549:in `block in do_start'
from /Users/David/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
from /Users/David/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/timeout.rb:99:in `timeout'
from /Users/David/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/net/smtp.rb:549:in `do_start'
from /Users/David/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/net/smtp.rb:525:in `start'

奇怪的是它在一两天前就起作用了,而我没有更改脚本。

不过,我在过去两天内确实更新了 Ruby 和 Rails,但我不确定我是在更新之前还是之后测试了脚本。会不会有关系?

有没有人知道这里发生了什么以及可能的解决方案?

【问题讨论】:

抱歉,在发布这个问题后,我意识到我不小心在 Hands Off 中阻止了对 smtp.google.com 的访问!我的错。所以,这个问题现在解决了,一切正常。 【参考方案1】:

我将在这里回答我的问题,因为我发现了导致此错误的原因,因此它不会显示为未回答。

所以,在发布这个问题后,我意识到我不小心在 Hands Off 中阻止了对 smtp.google.com 的访问!我的错。所以,这个问题现在已经解决了,一切正常。

【讨论】:

以上是关于在说 smtp.start 时获取“`initialize': getaddrinfo: nodename nor servname provided, or not known (SocketErr的主要内容,如果未能解决你的问题,请参考以下文章

当谈论设备指纹时,我们到底在说什么?(转)

Django form验证二

topic/title有啥区别?在说演讲文的题目时,用哪个?

在说数据库优化时,我们应该做些什么?

当我们讨论性能测试时,我们在说什么?

当我们说流程管理时,我们在说什么?