阿里云ECS屏蔽25端口,官方建议使用465 SSL端口发送邮件
阿里云ecs vpc网络,搭建了zabbix,想通过三方邮件系统发送邮件,本机开虚拟机测试发邮件一切正常,到阿里ecs的时候邮件各种发不出去,到处找原因,最后度娘告诉了我真想,原来阿里把25端口屏蔽了。
尝试解封,呵呵...继续找度娘 谷哥,说是可以绕开25端口,用465端口,步骤如下(先不要操作,我在测试机上按一下步骤成功使用465发送了邮件,但阿里云上ecs貌似不需要这些步骤就可以直接使用465发成功):
1、请求数字证书(这里使用126邮箱)
#创建目录,用于存放数字证书
mkdir -p /root/.certs
#向126请求证书
echo -n | openssl s_client -connect smtp.126.com:465 | sed -ne '/-begin certificate-/,/-end certificate-/p' > ~/.certs/126.crt
打印如下内容:
depth=2 c = us, o = digicert inc, ou = www.digicert.com, cn = digicert global root ca
verify return:1
depth=1 c = us, o = digicert inc, ou = www.digicert.com, cn = geotrust rsa ca 2018
verify return:1
depth=0 c = cn, l = hangzhou, o = "netease (hangzhou) network co., ltd", ou = mail dept., cn = *.126.com
verify return:1
done
#增加一个证书到证书数据库中
certutil -a -n "geotrust ssl ca" -t "c,," -d ~/.certs -i ~/.certs/126.crt
#再增加一个证书到证书数据库中
certutil -a -n "geotrust global ca" -t "c,," -d ~/.certs -i ~/.certs/126.crt
#列出目录中的证书
certificate nickname trust attributes
ssl,s/mime,jar/xpi
geotrust ssl ca c,,
2、126邮箱打开smtp并获取客户端授权码,以及设置客户端授权密码
步骤:设置--pop3/smtp/imap 开启
客户端授权密码 开启
3、若有如下报错(证书不被信任)
error in certificate: peer's certificate issuer is not recognized.
解决办法:
cd /root/.certs/
certutil -a -n "geotrust ssl ca - g3" -t "pu,pu,pu" -d ./ -i 126.crt
显示内容:notice: trust flag u is set automatically if the private key is present.
4、如果以后要通过服务器直接发送邮件而不是通过zabbix来发邮件,可能会遇到一下问题,这里也做下记录:
革命先驱者:https://www.cnblogs.com/yunweis/p/8149242.html
发邮件报错如下:
error initializing nss unknown error -8015.
以root用户就可以发送,其他用户不行。 (由于上面的文章介绍,生成的证书目录放在了root下,这样会导致其他用户没有可读和执行权限)
解决办法是 将证书文件目录:certs/ 移动到一个755权限的地方即可。如/etc下 一定要保证其他用户有读取和执行的权限,否则其他用户无法发送邮件。
5、zabbix配置变更如下:
变更前:
变更后:
再次触发报警,邮件发送成功,以上步骤线下实测,结果ok。
但阿里云ecs只将做了第5步调整,就成功发送邮件。
未至精疲力尽,不要怨天尤人。昨日因,今日果。今日为,明日果也!
上一篇: 01背包、完全背包模板