可能是史上最简单Linux邮件服务配置(smtp/smtps)

一、什么时候会用到邮件服务

当服务器需要向管理员发送告警信息的时候,比如某个进程挂了,某个磁盘快满了,某段时间压力超标了,往往需要通过邮件进行告警。那么要实现邮件告警,首先服务器得具备发送邮件的功能,那么就需要配置邮件服务。

二、邮件协议有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 '邮件主题' [email protected]

测试的目标邮箱可以正常收到邮件,配置成功

四、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一起讨论学习

你可能感兴趣的:(可能是史上最简单Linux邮件服务配置(smtp/smtps))