首先写一个定时任务脚本:
第三行就是数据库备份命令,第四行就是发送附件的命令,其中发送附件我用mail -a +附件的方式一直无法发送,最后用mutt方式方式附件成功!
(说明:因为备份的sql文件比较大都是几百兆,发送邮件是不支持的,最后用rar分卷压缩为5M,在批量发送附件,就可以成功了)
改动为为:
rar a -v5m /root/db_back/fuyin$DATE.rar /root/db_back/fuyin$DATE.sql
mutt -s "每日数据库备份" -a /root/db_back/fuyin$DATE*.rar -- 969114624@ < /root/db_back/delfile.txt
下方为配置安装邮件的步骤:
使用场景:
阿里云服务器centos7(linux)+发送端:163邮箱+接收端:qq邮箱
准备:
163邮箱配置
QQ邮箱配置
开始配置
阿里云封闭25端口,所以不能通过默认的端口(25)发送邮箱服务,需要通过邮箱服务器的加密端口(465)来完成发送邮件的服务。配置流程如下:
①修改 /etc/mail.rc末尾处加入
【利用163邮箱发送,最后一句是证书存放位置,届时发送邮件的时候,会通过此证书,来对加密端口进行解密,此处加密端口是465】
set bsdcompat
set from=xxx@//xxx:自己的163邮箱
set smtp=smtps://:465
set smtp-auth-user=xxx@//xxx:同上
set smtp-auth-password=xxxxxx//xxxxxx:准备阶段获得的授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/mail_cert//证书存放位置,后叙
②然后是创建文件夹来放证书文件,执行如下命令行
mkdir-p/root/mail_cert
执行命令:
echo -n "" | openssl s_client -connect :465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /root/mail_cert/163.crt
certutil-A-n"GeoTrust SSL CA"-t"C,," -d /root/mail_cert -i 163.crt
certutil-A-n"GeoTrust Global CA"-t"C,,"-d /root/mail_cert -i 163.crt
certutil-L-d /root/mail_cert
执行后即可发送邮件:
测试:
echo "TEST" | mail -v -s "Title" xxxx@
这里:xxxx@指目标邮箱
邮件可以发送但是会有警告
警告可以忽视,若想去掉警告,则在刚才证书目录/root/mail_cert下执行
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d /root/mail_cert -i 163.crt
出现如下表示设置成功
Notice: Trust flag u is set automatically if the private key is present.