我正在尝试使用IMAP,但它不起作用。 我尝试使用“https”进行同样的操作。
require 'net/imap'
=> true
irb(main):002:0> Net::IMAP.new("xxx", 993, true).login("redmine", "redmine")
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
from /usr/local/lib/ruby/1.9.1/net/imap.rb:1439:in `connect'
from /usr/local/lib/ruby/1.9.1/net/imap.rb:1439:in `start_tls_session'
from /usr/local/lib/ruby/1.9.1/net/imap.rb:1036:in `initialize'
from (irb):2:in `new'
from (irb):2
from /usr/local/bin/irb:12:in `<main>'
irb(main):003:0>
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
gem -v 1.8.24
这类似于:https://www.chiliproject.org/boards/1/topics/2076
openssl s_client -connect klevas.mif.vu.lt:imaps
表示证书已过期。但是,在另一个系统上,在哪里 Ruby和Gem是相同的,IMAP连接可以工作。
答案 0 :(得分:3)
试试这个: imap = Net :: IMAP.new('xxx',{:ssl =&gt; {:verify_mode =&gt; 0}})
答案 1 :(得分:3)
如果我们在这里讨论redmine,以下内容很有帮助。
在第29行的lib / redmine / imap.rb中有一个电话
imap = Net::IMAP.new(host, port, ssl)
根据从/usr/lib/ruby/1.9.1/net/imap.rb获得的信息
def initialize(host, port_or_options = {},
usessl = false, certs = nil, verify = true)
我把它改成了
imap = Net::IMAP.new(host, port, ssl, nil, false)
并且错误消失了