当我尝试使用Net::SMTP::TLS从Perl脚本发送电子邮件时,我得到以下信息:在/usr/local/share/perl5/IO/套接字/www.example.com第598行指定的SSL版本无效SSL.pm line 598操作系统:Linux你知道问题出在哪吗?我得怎么解决?谢谢大家!
Net::SMTP::TLS
bfrts1fy1#
Net::SMTP::TLS已经有10年没有维护了,它已经损坏了,因为它会导致你所描述的错误。如果你坚持使用这个损坏的模块,你需要修复它。修改第182行的代码,删除SSL_version的无效设置:
if(not IO::Socket::SSL::socket_to_SSL($me->{sock}, - SSL_version => "SSLv3 TLSv1")){ + )){ croak "Couldn't start TLS: ".IO::Socket::SSL::errstr."\n"; }
我建议您不要使用损坏和未维护的Net::SMTP::TLS或其后继版本,但也是未维护的Net::SMTP::TLS::ButMaintained,而是使用最新版本的Net::SMTP,它内置了对SMTP+SSL和IPv6的支持。如果使用新的Net::SMTP是不可能的,你可以使用Net::SSLGlue::SMTP,它可以修补旧的Net::SMTP版本来添加SSL支持。还有Net::SMTPS,它提供了类似的功能。
ni65a41a2#
让我总结一下,因为我刚刚修复了我的问题(感谢上面的贡献者)1.打开[Perl目录]/站点/库/网络/SMTP/TLS.pm1.查找第182行,它看起来像***if(不是IO::套接字::SSL::套接字到SSL($me-〉{sock},SSL版本=〉“SSLv 3 TLSv 1”)){***1.通过删除“SSL版本=〉“SSLv 3 TLSv 1”if(而不是IO::套接字::SSL::套接字到SSL($me-〉{sock}))更改为以下行{1.保存[Perl目录]/站点/库/网络/SMTP/TLS.pm其他参考URL:http://www.pclinuxos.com/forum/index.php/topic,143156.msg1223280.html#msg1223280
2条答案
按热度按时间bfrts1fy1#
Net::SMTP::TLS已经有10年没有维护了,它已经损坏了,因为它会导致你所描述的错误。如果你坚持使用这个损坏的模块,你需要修复它。修改第182行的代码,删除SSL_version的无效设置:
我建议您不要使用损坏和未维护的Net::SMTP::TLS或其后继版本,但也是未维护的Net::SMTP::TLS::ButMaintained,而是使用最新版本的Net::SMTP,它内置了对SMTP+SSL和IPv6的支持。
如果使用新的Net::SMTP是不可能的,你可以使用Net::SSLGlue::SMTP,它可以修补旧的Net::SMTP版本来添加SSL支持。还有Net::SMTPS,它提供了类似的功能。
ni65a41a2#
让我总结一下,因为我刚刚修复了我的问题(感谢上面的贡献者)
1.打开[Perl目录]/站点/库/网络/SMTP/TLS.pm
1.查找第182行,它看起来像***if(不是IO::套接字::SSL::套接字到SSL($me-〉{sock},SSL版本=〉“SSLv 3 TLSv 1”)){***
1.通过删除“SSL版本=〉“SSLv 3 TLSv 1”if(而不是IO::套接字::SSL::套接字到SSL($me-〉{sock}))更改为以下行{
1.保存[Perl目录]/站点/库/网络/SMTP/TLS.pm
其他参考URL:http://www.pclinuxos.com/forum/index.php/topic,143156.msg1223280.html#msg1223280