首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用net/imap连接到imap.google会产生错误

使用net/imap连接到imap.google会产生错误
EN

Stack Overflow用户
提问于 2019-08-05 12:45:10
回答 1查看 183关注 0票数 0

我正在尝试使用net/imap连接到我的邮件服务器,我得到了以下错误

回溯(最近一次调用):12:从/home/radoslav/.rbenv/versions/2.6.1/lib/ruby/2.6.0/net/imap.rb:1132:in <main>' 11: from imap.rb:5:inmethod_name‘10:从imap.rb:5:in new' 9: from /home/radoslav/.rbenv/versions/2.6.1/lib/ruby/2.6.0/net/imap.rb:1089:in初始化’8:从imap.rb:5:in tcp_socket' 7: from /home/radoslav/.rbenv/versions/2.6.1/lib/ruby/2.6.0/socket.rb:631:intcp‘6: from /home/radoslav/..rbenv/versions/2.6.1/lib/ruby/2.6.0/socket.rb:227:in foreach' 5: from /home/radoslav/.rbenv/versions/2.6.1/lib/ruby/2.6.0/socket.rb:227:ineach‘4: from /home/radoslav/.rbenv/versions/2.6.1/lib/ruby/2.6.0/socket.rb:641:in block in tcp' 3: from /home/radoslav/.rbenv/versions/2.6.1/lib/ruby/2.6.0/socket.rb:137:inconnect’2: from /home/radoslav/.rbenv/versions/2.6.1/lib/ruby/2.6.0/socket.rb:56:在/home/radoslav/.rbenv/versions/2.6.1/lib/ruby/2.6.0/socket.rb:1213:in‘_connect_nonblock:connect_internal' 1: from /home/radoslav/.rbenv/versions/2.6.1/lib/ruby/2.6.0/socket.rb:1213:inconnect_nonblock’_connect_nonblock:Networkfor2a00:1450:400C:C07:6d:143 (Errno::ENETUNREACH)

这是我使用的代码:

代码语言:javascript
复制
require 'net/imap'

def method_name
    imap = Net::IMAP.new('imap.gmail.com')
    imap.authenticate('LOGIN', 'my.name.here@gmail.com', 'mypasshere')
    imap.examine('INBOX')
    imap.search(["RECENT"]).each do |message_id|
        puts "#{message_id}"
    end
    puts "Hello"
end


method_name()

我怀疑这与系统有关,而非创业板本身,但无法在互联网上找到解决方案。

这台机器确实可以上网。

代码语言:javascript
复制
radoslav@radoslav-VirtualBox:~/Documents/Ruby/imap$ telnet imap.gmail.com 993
Trying 74.125.140.109...
Connected to gmail-imap.l.google.com.
EN

回答 1

Stack Overflow用户

发布于 2019-08-05 14:21:44

基于错误回溯,它试图通过tcp端口143连接:

代码语言:javascript
复制
Network is unreachable - connect(2) for [2a00:1450:400c:c07::6d]:143

你通过993测试了它:

代码语言:javascript
复制
radoslav@radoslav-VirtualBox:~/Documents/Ruby/imap$ telnet imap.gmail.com 993

143是基于docs的imap的默认值,因此更改这一行以传递正确的端口号:

代码语言:javascript
复制
imap = Net::IMAP.new('imap.gmail.com', port: 993)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57358883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档