赞
踩
一、什么时候会用到邮件服务
当服务器需要向管理员发送告警信息的时候,比如某个进程挂了,某个磁盘快满了,某段时间压力超标了,往往需要通过邮件进行告警。那么要实现邮件告警,首先服务器得具备发送邮件的功能,那么就需要配置邮件服务。
二、邮件协议有smtp和smtps,有什么区别
smtp和smtps都是用来发送邮件的,但是smtps更安全,因为用到了ssl来对数据进行加密、防篡改等。目前腾讯云、阿里云、华为云等都推荐使用smtps,默认禁止smtp(可以通过工单申请开放smtp)。
三、smtp配置脚本
为什么说史上最简单,因为只要把这个脚本复制到服务器中,直接运行就可以完成配置。
当然这里也会说明一下原理。
- [root@server01 ~]# cat smtp.sh - 最佳的smtp 来源和相关信息。
- #!/bin/bash
- # FileName: smtp.sh
- # Version: 1.0
- # Date: 2020-04-24
- # Author: baige
- # Description: the script for smtp configration
- read -p "Please Input Your Email Provider [163/qq/126]: " provider #通过read方式获得相关变量
- read -p "Please Input Your Email Account: " account
- read -p "Please Input Your Auth-Password: " password
- echo "Waiting For A Moment..."
- yum install mailx sendmail -y >/dev/null0
- cat >>/etc/mail.rc<< EOF
- set from=$account@$provider.com #邮箱地址
- set smtp=smtp.$provider.com #smtp服务器
- set smtp-auth-user=$account #邮箱账号
- set smtp-auth-password=$password #授权密码,注意是授权密码,不是在web页面上登邮箱的密码,授权密码可以在邮箱的pop3/smtp设置页面自行设置。
- set smtp-auth=login
- EOF
- systemctl start sendmail
执行脚本,这里输入自己的邮箱信息即可
- [root@server01 ~]# chmod +x smtp.sh
- [root@server01 ~]# ./smtp.sh
- Please Input Your Email Provider [163/qq/126]: 163
- Please Input Your Email Account: hbx19860110
- Please Input Your Auth-Password: ******
- Waiting For A Moment...
- [root@server01 ~]#
发送邮件测试
[root@server01 ~]# echo '邮件内容' | mail -s '邮件主题' 3473067134@qq.com
测试的目标邮箱可以正常收到邮件,配置成功
四、smtps配置
因为smtps使用了ssl加密,所以在smtp的基础上,我们加上ssl证书相关的配置即可。
本脚本在腾讯云,华为云均测试通过
- #!/bin/bash
- # FileName: smtps.sh
- # Version: 1.0
- # Date: 2020-04-24
- # Author: baige
- # Description: the script for smtps configration
- read -p "Please Input Your Email Provider [163/qq/126]: " provider
- read -p "Please Input Your Email Account: " account
- read -p "Please Input Your Auth-Password: " password
- echo "Waiting For A Moment..."
- yum install mailx sendmail -y >/dev/null
- mkdir -p /root/.certs/ #从这里开始,均为下载ssl证书及相关配置#
- echo -n | openssl s_client -connect smtp.$provider.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/$provider.crt >/dev/null
- certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/$provider.crt >/dev/null
- certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/$provider.crt >/dev/null
- certutil -L -d /root/.certs >/dev/null
- cat >>/etc/mail.rc<< EOF #以下为邮箱账户相关配置#
- set from=$account@$provider.com
- set smtp=smtps://smtp.$provider.com:465
- set smtp-auth-user=$account@$provider.com
- set smtp-auth-password=$password
- set smtp-auth=login
- set ssl-verify=ignore
- set nss-config-dir=/root/.certs"
- EOF
- systemctl start sendmail
点击了解更多技术资料和免费学习视频请加入讨论群:662736393
欢迎关注百哥IT技术专栏,联系QQ:3473067134
针对本技术点问题,欢迎加Q一起讨论学习
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。