标签:menu roo $? 表示 email sendemail tac lang 命令
下载和安装#下载安装包
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才能够成功发送邮件。
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 非必输项,邮件发送日志记录到日志文
标签:menu roo $? 表示 email sendemail tac lang 命令
原文地址:http://blog.51cto.com/888888hfer/2156197