网站后台SMTP协议发送邮件,提示“SMTP Error: Could not connect to SMTP host。”
1、服务器:阿里云ECS服务器(618刚买的)
2、网站:企业网站
3、功能:网站-留言,后台通过smtp发送邮件,向我报警
4、SMTP服务器:smtp.163.com
5、SMTP端口有:25、465/994,25可以理解成未加密,465/994理解成SSL加密
问题描述:
SMTP端口一直配的是25端口,本地windows机器测试正常,可以发送邮件。但是上到云上(阿里云),发送邮件提示“SMTP Error: Could not connect to SMTP host。”。
问题分析:
常规思路首先是查找百度的解决方法:
1、说是阿里云屏蔽了25端口,不对外开放了,需要使用465 SSL端口来发送邮件。在安全组加入465端口,邮件依然发送失败,错误依旧
2、php.ini需要开放openssl、socketd,但是宝塔中默认是开着这两个的,这个方法对我没有用
3、向阿里云提交了工单,工程师向我确认了用的只是他们的服务器,并不是他们阿里云的邮箱,他们对问题也是一筹莫展,让我等消息。吐槽吧
解决办法:(我自己发现的)
后来我细细想了一下,发现通过smtp协议是单纯通过服务器向外发送信息(服务器向外网发邮件),只用到了安全组中的出方向,并未用到入方向。平时配置安全组,都是配置的入方向的端口,把出方向给忘记了。配置出方向的465端口,问题解决。
涨知识了。