使用阿里云服务器发送邮件

使⽤阿⾥云服务器发送邮件
今天在线上配置数据库服务,在本机测试的时候写了⼀个当检测到MySQL宕机的时候会发送⼀封邮件到指定的账户提醒,部署到阿⾥云之后其他⼀切正常,就是邮件发送不成功,折腾了我⼀天
原来是因为国家政策,为了防⽌疯狂发送垃圾邮件,阿⾥云关闭了25端⼝(安全组⽆法开启25端⼝),⽽我在本机测试的时候是直接使⽤Linux⾃带的发送邮件功能,指令如下:
枸杞果糕echo "`date` mysql is stop" | mail -s "mysql is stop"    xxxx@qq
上述指令将向xxxx@qq邮箱发送⼀封标题为“mysql is stop”,内容为“系统时间+ mysql is stop”的邮件,发件⼈没有设置,也能发送成功,但在许多邮箱中将被识别为垃圾邮件,需要在垃圾邮件箱中查询
但这在阿⾥云服务器上是不成功的,指令虽然不会报错,但是阿⾥云不会发送邮件,因为25端⼝是被关的。
水电安装开槽机于是寻思着那就⽤外部邮箱服务器发送邮件呗,上⽹搜了⼀通,全都失败,最接近成功的是下⾯这个教程:
然后就蒙蔽了,折腾了好久都没到原因,后来经过⾼⼈指点,说要获得ssl证书通过465端⼝阿⾥云服务器才能通过外部邮箱服务器发送邮件,过程如下:
1.关闭其他的邮件⼯具
service sendmail stop
chkconfig sendmail off
service postfix stop
chkconfig postfix off
2.安装mailx(我在之前已经安装过了,所以这步我没做)
yum install mailx
3.在邮箱中开启smtp,开启后会得到⼀个授权码,这个授权码就代替了密码(具体操作参考上⾯提到的最接近成功的教程)
4.请求数字证书(这⾥⽤qq邮箱,所以向qq请求证书)
mkdir -p /root/.certs/
铝合金框架
防爆电动紧急切断阀echo -n | openssl s_client -connect smtp.qq:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >
~/.
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -
certutil -L -d /root/.certs
注意:执⾏上述语句的时候会报错,说qq.crt没有可执⾏权限,具体在哪⼀步忘记了,遇到了赋予权限就好,我是直接给了可读可写可执⾏的权限,指令:    chmod   需要先cd到/root/.certs/ ⽬录
5.配置/
set from=xxxx@qq #设置发送邮件⽅
台历架set smtp=smtps://smtp.qq:465 #邮件服务器
粘滞阻尼系数
set smtp-auth-user=xxxx@qq #⽤户名
set smtp-auth-password=xxxxxxxxxxx #授权码
set smtp-auth=login #默认login
set ssl-verify=ignore #ssl认证⽅式
set nss-config-dir=/root/.certs #证书所在⽬录
6.测试发送邮件指令
echo "`date` mysql is stop" | mail -s "mysql is stop"    xxxx@qq 成功接受到邮件

本文发布于:2024-09-23 15:30:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/129111.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:邮件   发送   邮箱
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议