[运行在OS的Perl 5.16.2 X 10.9.5]无声故障
我有一个小秘密圣诞老人perl脚本我一年重温一次,现在这次它决定给我一个麻烦。 (我有一个新的电脑一样,所以确实存在着与去年不同的环境。)我打电话:
$smtp = Net::SMTP::SSL->new(Host => "mail.mydomain.org", Port => 465);
,当它返回,$ SMTP包含Perl调试没有价值('p $smtp'
刚显示一个空行)和随后的访问像$stmp->domain
(和$smtp->auth()
)失败,错误
Can't call method "domain" on an undefined value at ./secretsanta.pl line 67.
缺少什么我在这里?感谢任何指针。
编辑:当我打开SSL调试(perl -MIO::Socket::SSL=debug4 secretsanta.pl
)我得到:
DEBUG: .../IO/Socket/SSL.pm:1769: Invalid default certificate authority locations
SSL error: 8606: 1 - error:2006D002:BIO routines:BIO_new_file:system lib
SSL error: 8606: 2 - error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
DEBUG: .../IO/Socket/SSL.pm:1774: Invalid default certificate authority locations error:0200100D:system library:fopen:Permission denied
DEBUG: .../IO/Socket/SSL.pm:529: socket not yet connected
DEBUG: .../IO/Socket/SSL.pm:531: socket connected
DEBUG: .../IO/Socket/SSL.pm:553: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:1769: SSL structure creation failed
DEBUG: .../IO/Socket/SSL.pm:1774: SSL structure creation failed error:140BA0C3:SSL routines:SSL_new:null ssl ctx
DEBUG: .../IO/Socket/SSL.pm:1758: IO::Socket::INET configuration failed
(我用我的托管公司提供的SSL证书,不符合我的邮件服务器的DNS名称,但很明显的东西从去年开始改变导致此不工作)
检查'$!'和'$ IO :: Socket :: SSL :: SSL_ERROR'以获取细节失败的原因。 – 2014-11-08 22:29:33
@SteffenUllrich'$!'是空的,'$ IO :: Socket ...'是'IO :: Socket :: INET6配置失败' – Conrad 2014-11-08 22:48:01
@SteffenUllrich我刚试过'使用IO :: Socket :: SSL'inet4' ;'在脚本开始,现在错误是'IO :: Socket :: INET配置失败' – Conrad 2014-11-08 23:08:30