当前位置:   article > 正文

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

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

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

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

二、邮件协议有smtp和smtps,有什么区别

smtp和smtps都是用来发送邮件的,但是smtps更安全,因为用到了ssl来对数据进行加密、防篡改等。目前腾讯云、阿里云、华为云等都推荐使用smtps,默认禁止smtp(可以通过工单申请开放smtp)。

三、smtp配置脚本

为什么说史上最简单,因为只要把这个脚本复制到服务器中,直接运行就可以完成配置。

当然这里也会说明一下原理。

  1. [root@server01 ~]# cat smtp.sh - 最佳的smtp 来源和相关信息。
  2. #!/bin/bash
  3. # FileName: smtp.sh
  4. # Version: 1.0
  5. # Date: 2020-04-24
  6. # Author: baige
  7. # Description: the script for smtp configration
  8. read -p "Please Input Your Email Provider [163/qq/126]: " provider #通过read方式获得相关变量
  9. read -p "Please Input Your Email Account: " account
  10. read -p "Please Input Your Auth-Password: " password
  11. echo "Waiting For A Moment..."
  12. yum install mailx sendmail -y >/dev/null0
  13. cat >>/etc/mail.rc<< EOF
  14. set from=$account@$provider.com #邮箱地址
  15. set smtp=smtp.$provider.com #smtp服务器
  16. set smtp-auth-user=$account #邮箱账号
  17. set smtp-auth-password=$password #授权密码,注意是授权密码,不是在web页面上登邮箱的密码,授权密码可以在邮箱的pop3/smtp设置页面自行设置。
  18. set smtp-auth=login
  19. EOF
  20. systemctl start sendmail

执行脚本,这里输入自己的邮箱信息即可

  1. [root@server01 ~]# chmod +x smtp.sh
  2. [root@server01 ~]# ./smtp.sh
  3. Please Input Your Email Provider [163/qq/126]: 163
  4. Please Input Your Email Account: hbx19860110
  5. Please Input Your Auth-Password: ******
  6. Waiting For A Moment...
  7. [root@server01 ~]#

发送邮件测试

[root@server01 ~]# echo '邮件内容' | mail -s '邮件主题' 3473067134@qq.com

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

四、smtps配置

因为smtps使用了ssl加密,所以在smtp的基础上,我们加上ssl证书相关的配置即可。

本脚本在腾讯云,华为云均测试通过

  1. #!/bin/bash
  2. # FileName: smtps.sh
  3. # Version: 1.0
  4. # Date: 2020-04-24
  5. # Author: baige
  6. # Description: the script for smtps configration
  7. read -p "Please Input Your Email Provider [163/qq/126]: " provider
  8. read -p "Please Input Your Email Account: " account
  9. read -p "Please Input Your Auth-Password: " password
  10. echo "Waiting For A Moment..."
  11. yum install mailx sendmail -y >/dev/null
  12. mkdir -p /root/.certs/ #从这里开始,均为下载ssl证书及相关配置#
  13. echo -n | openssl s_client -connect smtp.$provider.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/$provider.crt >/dev/null
  14. certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/$provider.crt >/dev/null
  15. certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/$provider.crt >/dev/null
  16. certutil -L -d /root/.certs >/dev/null
  17. cat >>/etc/mail.rc<< EOF #以下为邮箱账户相关配置#
  18. set from=$account@$provider.com
  19. set smtp=smtps://smtp.$provider.com:465
  20. set smtp-auth-user=$account@$provider.com
  21. set smtp-auth-password=$password
  22. set smtp-auth=login
  23. set ssl-verify=ignore
  24. set nss-config-dir=/root/.certs"
  25. EOF
  26. systemctl start sendmail

 

 

点击了解更多技术资料和免费学习视频请加入讨论群:662736393

欢迎关注百哥IT技术专栏,联系QQ:3473067134

针对本技术点问题,欢迎加Q一起讨论学习

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/657938
推荐阅读
相关标签
  

闽ICP备14008679号