欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

rundeck 警告邮件QQ邮箱设置

程序员文章站 2024-03-20 11:16:40
...

现在最常使用微信、QQ,所以警告邮件设置为QQ邮箱

开启邮箱SMTP

进入邮箱设置,验证后获得邮箱授权码 rundeck 警告邮件QQ邮箱设置

centos配置

开启服务

[aaa@qq.com ~]# service sendmail stop
[aaa@qq.com ~]# chkconfig sendmail off

[aaa@qq.com ~]# service postfix start
[aaa@qq.com ~]# chkconfig postfix on

若开启postfix 失败 见另一篇文章 postfix失败解决

编辑配置文件

在文件末尾添加

vi /etc/mail.rc   
set aaa@qq.com				# 对方收到邮件时显示的发件人
set smtp=smtp.qq.com 					# 指定第三方发邮件的smtp服务器地址
set aaa@qq.com		# 第三方发邮件的用户名
set smtp-auth-password=pobecrurtucjbhhd # 上面邮箱设置里的授权码
set smtp-auth=login 					# SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式

set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

打开POP3/SMTP/IMAP功能

因为阿里云 ECS 封禁了25端口,所以我们只能使用 TLS 方式(TSL 也就是使用 SSL加密的方式,使用465或者其他端口来发送邮件)绕过25端口需求来发送邮件,所以必须先获得邮箱的 SSL 证书并存放到本地,最后一行的nss-config-dir 就是制定的存放 QQ 邮箱 SSL 证书的位置。

  • 因为需要 QQ 邮箱的 SSL 证书,所以我们还需要手动的获取QQ 邮箱的证书保存到本地指定的目录里以备调用和验证,具体命令如下:
mkdir -p /root/.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 /root/.certs

  • 为了防止出现前文所说的发送邮件警告提示,还需要进入邮箱 SSL 证书存放目录 /root/.certs 里执行如下命令:
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

返回如下提示即可:

Notice: Trust flag u is set automatically if the private key is present.**

这是为了信任证书的标记操作。

至此,已经完成了 mailx 结合 QQ 邮箱发送系统邮件的部署了。

测试

echo "测试邮件主题" | mail -s "测试邮件内容"  aaa@qq.com      #最后邮箱为收件箱

rundeck 调用

  • 调用脚本
#!/bin/bash

echo "Time :"    date

aaa@qq.com,aaa@qq.com  # 多个接收邮箱用逗号隔开

echo -e "`date "+%Y-%m-%d %H:%M:%S"` :please to check the fail sql attachement." |  mailx \
-r "From: alertAdmn <aaa@qq.com>" \
-a failsql.log \                  #所带附件     若不带附件此行不要,且echo 行mailx ying 改为mail
-s "Critical:Fail sql." ${EMAIL}


  • rundeck web界面`
    rundeck 警告邮件QQ邮箱设置