阿里雲服務器mail發送郵件的坑!!!!

由於阿里雲默認將目的端口爲TCP25的出現流量屏蔽了,因此改用465 ssl端口發送郵件mysql

下面步驟注意更更名字,密碼,目錄等,不須要增長安全組任何端口。大體步驟複製粘貼必定成功sql

1、安裝mailx,經過此工具實現

[root@db ~]# yum install -y mailx
[root@db ~]# vim /etc/mail.rc
設置發件人信息shell

.....
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:指定證書所在的目錄vim

2、申請證書

[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.crtbash

列出目錄下的證書
[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網絡

3、發送郵件

[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

轉載於網絡進行整理,望採納

相關文章
相關標籤/搜索