因为阿里云默认将目的端口为TCP25的出现流量屏蔽了,所以改用465 ssl端口发送邮件
下面步骤注意更改名字,密码,目录等,不需要增加安全组任何端口。大致步骤复制粘贴一定成功
一、安装mailx,通过此工具实现
[root@db ~]# yum install -y mailx
[root@db ~]# vim /etc/mail.rc
设置发件人信息
.....
set from=wushuting@kting.cn
set smtp=smtps://smtp.exmail.qq.com:465
set smtp-auth-user=***ting@kting.cn
set smtp-auth-password=***
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs
set smtp=smtps:设置发送邮件的服务器端口,如果非企业邮箱去掉exmail
set smtp-auth-password:设置qq企业邮箱授权密码
set ssl-verify:忽略ssl检查
set nss-config-dir:指定证书所在的目录
二、申请证书
[root@db ~]# mkdir .certs
向qq企业邮箱申请证书
[root@db ~]# echo -n | openssl s_client -connect smtp.exmail.qq.com:465 | sed -ne ‘/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p’ > .certs/qq.crt
[root@db ~]# certutil -A -n “GeoTrust SSL CA” -t “C,,” -d ~/.certs -i ~/.certs/qq.crt
[root@db ~]# certutil -A -n “GeoTrust Global CA” -t “C,,” -d ~/.certs -i ~/.certs/qq.crt
列出目录下的证书
[root@db ~]# certutil -L -d ~/.certs/
[root@db ~]# cd .certs/
标记证书
[root@db .certs]# certutil -A -n “GeoTrust SSL CA – G3” -t “Pu,Pu,Pu” -d ./ -i qq.crt
三、发送邮件
[root@db ~]# echo “test” | mail -s ‘test’ ***ting@kting.com
我写了一个简单的mysql全备shell脚本,通过mailx调用通知
#!/bin/bash
PWD="***"
LOG_FILE=/root/crontab/backup.log
BAKDIR=/store/backup
MAIL_USER=***ting@kting.cn
DATE=`date '+%Y%m%d_%H-%M-%S'`
#清空输出日志
> $LOG_FILE
function bakstart {
#开始备份
local DATE
DATE=`date '+%Y%m%d_%H-%M-%S'`
echo "$DATE backup database start!" >> $LOG_FILE
/data/server/mysql/bin/mysqldump -uroot -p${PWD} --opt --default-character-set=utf8 --all-databases > $BAKDIR/mysql_all_$DATE.sql
if [ $? == 0 ];then
echo "size:`du -sh $BAKDIR/mysql_all_$DATE.sql | awk '{print $1}'`" >> $LOG_FILE
#结束备份,压缩备份
cd $BAKDIR
gzip $BAKDIR/mysql_all_$DATE.sql
if [ $? == 0 ];then
return 0
else
return 1
fi
else
return 2
fi
}
#返回值输出信息
bakstart
case $? in
0)
echo "`date '+%Y%m%d_%H-%M-%S'` backup database stop!" >> $LOG_FILE ;;
1)
echo "gzip faile!" >> $LOG_FILE ;;
2)
echo "database backup faile! check $BAKDIR" >> $LOG_FILE ;;
esac
#拷贝日志,邮件发送日志
cp $LOG_FILE{,-$DATE}
mail -s 'database mail' $MAIL_USER < $LOG_FILE
转载于网络进行整理,望采纳