无法通过包“ IO :: Socket :: SSL”找到对象方法“新”(也许您忘记加载“ IO :: Socket :: SSL”了吗?)

1 sockets perl ssl imapclient

我们使用的是Perl 5,版本18,版本1(v5.18.1)。

之前我们将Outlook 2007连接到使用用户和密码通过Mail :: IMAPClient模块进行连接,因为不需要使用SSL或TLS。现在,我们已将Outlook迁移到2016年,在此版本中,必须引入SSL或TLS。

我试图在Perl脚本中添加SSL代码,但失败如下:

无法通过包“ IO :: Socket :: SSL”找到对象方法“新”(也许您忘记加载“ IO :: Socket :: SSL”了吗?)


我的代码:

$client = Mail::IMAPClient->new(
   server   => $Eserver,
   User     => $Euser,
   Password => $Epassword,
   ssl      => 1,
   port     => 993,
   Socket   => IO::Socket::SSL->new
   (  Proto    => 'tcp',
      PeerAddr => $Eserver,
      PeerPort => 993, # IMAP over SSL standard port
   ),
Run Code Online (Sandbox Code Playgroud)

如果有人以正确的方式在IMAP客户端中添加ssl模块,是否可以提供帮助。是否需要将Perl 5升级到最新版本以使用SSL或TLS(使用starttls方法?)。

另外,我们如何知道我们正在使用哪个IMAPclient模块?

我确定有些东西丢失了。不确定,因为我在Perl工作时很幼稚。

Dav*_*oss 5

无法通过包“ IO :: Socket :: SSL”找到对象方法“新”(也许您忘记加载“ IO :: Socket :: SSL”)

您忘记加载了IO::Socket::SSL吗?

use IO::Socket::SSL;
Run Code Online (Sandbox Code Playgroud)

它甚至在文档中的示例中:

use IO::Socket::SSL;
my $imap = Mail::IMAPClient->new
 ( User     => 'your-username',
   Password => 'your-password',
   Socket   => IO::Socket::SSL->new
   (  Proto    => 'tcp',
      PeerAddr => 'some.imap.server',
      PeerPort => 993, # IMAP over SSL standard port
   ),
);
Run Code Online (Sandbox Code Playgroud)