下载和安装
#下载安装包 wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz #创建目录 mkdir -p /usr/local/bin #解压 tar zxf sendEmail-v1.56.tar.gz -C /usr/src/ #进入解压目录 cd /usr/src/sendEmail-v1.56/ #复制程序到指定目录 cp -a sendEmail /usr/local/bin/ #给执行权限 chmod +x /usr/local/bin/sendEmail #安装组件 yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
发送邮件测试
#创建发件记录日志文件 mkdir -p /var/log touch /var/log/sendMyEmail.log #发送邮件 /usr/local/bin/sendEmail -f hhh@163.com -t 123456789@qq.com -s smtp.163.com -u "报.警测试"-xu hhh@163.com -xp @453163.com -m "test-1234567890" -l /var/log/sendMyEmail.log
执行完以上命令之后会报一个错,邮件发送失败
******************************************************************* Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER possibly 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 444.
在网上查找了一下发现http://blog.51cto.com/hequan/1811246 这里遇到的错误几乎是和我一样的。centos7.3默认的Perl版本是5.16,使用sendEmail-v1.56似乎要使用5.10版本的Perl才能够成功发送邮件。
下载并安装Perl-5.10
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/perl echo $? #返回0,编译没问题 make make test make install 备份原来的Perl mv /usr/bin/perl /usr/bin/perl.bak ln -s /usr/local/perl/bin/perl /usr/bin/perl #查看Perl版本,显示5.10表示已经成功 perl -v
发邮件测试
[root@localhost perl-5.10.0]# /usr/local/bin/sendEmail -f aaa@xyz.com -t hhh@163.com -s smtp.qiye.aliyun.com -u "报警测试" -xu aaa@xyz.com -xp rxjy0.101 -m "test-中文" -o message-charset=utf-8 -l /var/log/sendMyEmail.log Jul 28 14:02:06 localhost sendEmail[4847]: Email was sent successfully! From: <aaa@xyz.com> To: <hhh@163.com> Subject: [报警测试] Server: [smtp.qiye.aliyun.com:25]
看到以上的返回信息表示已经发邮件成功,可以去收件箱确认一下,如果收件箱没有,可能是在垃圾邮件里面。
aaa@xyz.com 是用的阿里企业邮箱,hhh@163.com是自己的邮箱
/usr/local/bin/sendEmail 命令主程序 -f from@163.com 发件人邮箱 -t to@163.com 收件人邮箱 -s smtp.163.com 发件人邮箱的smtp服务器 -u "我是邮件主题" 邮件的标题 -o message-content-type=html 邮件内容的格式,html表示它是html格式 -o message-charset=utf8 邮件内容编码 -xu from@163.com 发件人邮箱的用户名 -xp 123456 发件人邮箱密码 -m "我是邮件内容" 邮件的具体内容 -l /var/log/sendMyEmail.log 非必输项,邮件发送日志记录到日志文