sendEmail invalid SSL_version at SSL.pm

在Linux下配置简单的邮件发送,mail 加上uuencode方式或者mutt方式,都不是很理想。因此还是继续使用之前用过的sendEmail来实现邮件发送,这还真不巧,遭遇invalid SSL_version,同时对于使用腾讯的免费企业邮箱也有一些问题,下面是故障描述及解决方案。

一、故障现象及环境

1、故障现象

# sendEmail -f cgh@163.com -t leshami@qq.com -u "TestMail" -s smtp.163.com -xu cgh -xp passwd \
> -m "This is test mail from Robinson" 
*******************************************************************
 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/local/bin/sendEmail line 1906.
invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415

2、环境

# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)

二、解决方案

1、SSL.pm文件415行

 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,版本不兼容

2、解决方案

a、卸载现有的perl版本,安装老版本(不推荐)
b、增加参数-o tls=no 选项
# sendEmail -f cgh@163.com -t leshami@qq.com -u "TestMail" -s smtp.163.com -xu cgh -xp passwd \
> -m "This is test mail from Robinson" -o tls=no
Sep 28 09:49:55 hn249 sendEmail[127791]: Email was sent successfully!

3、其他问题(腾讯免费邮箱不支持传统的smtp 25号端口方式

# sendEmail -f chengguohua@htyjie.com -t leshami@qq.com -u "TestMail" -s smtp.exmail.qq.com -xu chengguohua -xp passwd \
> -m "This is test mail from Robinson" -o tls=no
Sep 28 10:00:16 hn249 sendEmail[127844]: ERROR => ERROR => SMTP-AUTH: Authentication to smtp.exmail.qq.com:25 failed.

三、其他参考

sendEmail用法:不可或缺的sendEmail

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP在线

JSON Web Token - 在Web应用间安全地传递信息

JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。 让我们来假想一下一个场景。在A用户...

3646
来自专栏Flutter&Dart

DartVM服务器开发(第十六天)--Jaguar使用JWT

JWT(Json Web Token)Json网络令牌,是基于Json的开放标准,是一个用私钥编码和签名的JSON数据,由于它已签名,因此无法篡改数据。在存在私...

1873
来自专栏偏前端工程师的驿站

.Net魔法堂:史上最全的ActiveX开发教程——部署篇

一、前言                                   接《.Net魔法堂:史上最全的ActiveX开发教程——发布篇》,后我们继续来部署...

1845
来自专栏PHP在线

JSON Web Token - 在Web应用间安全地传递信息

JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。

2087
来自专栏小白安全

小白博客 Linux下暴力破解工具Hydra详解

Number one of the biggest security holes are passwords, as every password secu...

6687
来自专栏小鄧子的技术博客专栏

【译】使用RxJava代替EventBus类库

如今的Android社区,人人都在讨论RxJava以及为什么我们应该在项目中使用RxJava。当我们开始在Android项目中使用RxJava的时候,就已经意识...

1472
来自专栏张绍文的专栏

基于 TLS 1.3的微信安全通信协议 mmtls 介绍(下)

随着近些年网络安全事情的频繁发生,使得用户对网络通信安全的意识越来越强。国内外的网络服务提供商都逐渐提供全站的安全通信服务,如国内的淘宝、百度先后宣布已经完成了...

1.6K1
来自专栏Web 开发

申请SSL开启SPDY服务

12月10日的时候,整个站点就已经装上了Nginx 1.4,配置文件里面已经可以开启SPDY功能,不过那时候一直缺少一枚SSL证书。

810
来自专栏程序员Gank

【译】使用RxJava代替EventBus类库

如今的Android社区,人人都在讨论RxJava以及为什么我们应该在项目中使用RxJava。当我们开始在Android项目中使用RxJava的时候,就已经意识...

1202
来自专栏owent

接入letsencrypt+全面启用HTTP/2

之前我的域名只有owent.net和www.owent.net买了SSL证书,现在有letsencrypt可以拿到免费的SSL签证,就稍微花了点时间把我的域名的...

982

扫码关注云+社区

领取腾讯云代金券