centos7 使用 sendEmail 脚本发送邮件

使用 sendEmail 脚本发送邮件还是挺方便的,配置起来比较快,但在 centos7 上遇到了一些问题,在此做一些记录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
安装相关依赖
yum -y install perl-IO-Socket-SSL openssl-perl openssl-devel

获取脚本
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar zxvf sendEmail-v1.56.tar.gz
cp sendEmail-v1.56/sendEmail /usr/bin/sendEmail

编译安装低版本 perl
wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz
tar zxf perl-5.10.0.tar.gz
cd perl-5.10.0
./configure.gnu -des -Dprefix=/usr/local/perl5.10
make
make test
make install
ln -sf /usr/local/perl5.10/bin/perl5.10.0 /usr/bin/perl5.10

安装 perl ssl库
perl5.10 -MCPAN -e shell
install Net::SSLeay
install IO::Socket::SSL

修改 sendEmail 脚本
vim /usr/bin/sendEmail
修改执行环境 #!/usr/bin/perl5.10 -w
修改 ssl 握手代码 1906行
原代码:
if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {
修改为
if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv23:!SSLv2', SSL_verify_mode => 0)) {

执行 sendEmail 脚本
/usr/bin/sendEmail -o tls=yes -f "$from_email" -s "$smtp" -u "$title" -o message-content-type=text -o message-charset=utf8 -t "$to_email" -xu "$from_email" -xp "$password" -m "$body"
需要若干变量,注意给变量赋值,其中 smtp 格式为 smtp='smtp.exmail.qq.com:587'

参考资料与文章:
https://unix.stackexchange.com/questions/53065/invalid-ssl-version-specified-at-usr-share-perl5-io-socket-ssl-pm-line-332