CentOS 7 下sendEmail发邮件失败,提示invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415.

时间:2023-12-24 19:45:07

系统环境
CentOS Linux release 7.2.1511 (Core)

sendEmail发送邮件是出现以下报错:
*******************************************************************
Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
together with SSL_ca_file|SSL_ca_path for verification.
If you really don't want to verify the certificate and keep the
connection open to Man-In-The-Middle attacks please set
SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
at /usr/bin/sendEmail line 1906.
invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415.

问题原因:
SSL.pm文件415行

${*$self}{'_SSL_ctx'} = IO::Socket::SSL::SSL_Context->new($arg_hash) || return;

# perl -v

This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
(with 29 registered patches, see perl -V for more detail)

由于在CentOS 7下perl的版本为5.16,而centos6.5的是5.10,版本不兼容

解决方法:
a、卸载现有的perl版本,安装老版本(不推荐)
b、增加参数-o tls=no 选项
# /usr/local/bin/sendEmail -f kogcenter@163.com -s smtp.163.com -xu kogcenter@163.com -xp 123456 -t jacket@qq.com -u "test mail" -m "test mail" -o tls=no
Apr 27 14:55:16 server sendEmail[185679]: Email was sent successfully!