文章预览:
1.先去QQ邮箱,开启pop3/IMAP获取授权码
2.安装mailx组件
yum install mailx -y
3.调整参数
vi /etc/postfix/main.cf
inet_interfaces = all
4.创建认证
mkdir -p /home/hadoop/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /home/hadoop/.certs
cd /home/hadoop/.certs
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
5.配置邮件发送者
vi /etc/mail.rc
假设QQ号为:example
set from=example@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=example
#授权码
set smtp-auth-password=cnnjaqnhtohmeahg(此处填第一步生成的授权码)
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/home/hadoop/.certs
6.shell客户端测试
echo hello word | mail -s " title" XXX@163.com(目标邮箱地址)
#当然实时查看 Linux ⽇志
tail -f /var/log/maillog
7.shell脚本测试
1.发邮件不带附件
EMAIL=example@qq.com(在shell命令中直接执行相当于给EMAIL变量设置值example@qq.com)
echo -e "`date "+%Y-%m-%d %H:%M:%S"` : The current running $JOB_NAME job num is \
$RUNNINGNUM in 192.168.137.201 ......" | mail \
-r "From: alertAdmin <${EMAIL}>" \
-s "Warn: Skip the new $JOB_NAME spark job." ${EMAIL}
2.发邮件带附件
前提是-a参数后面对应的文件必须存在
echo -e "`date "+%Y-%m-%d %H:%M:%S"` : Please to check the fail sql attachement." \
| mailx \
-r "From: alertAdmin <${EMAIL}>" \
-a error.log \
-s "Critical:KSSH fail sql." ${EMAIL}