fastadmin----Could not open SMTP Port解决办法

服务器技术 / 376人浏览 / 0人评论

最近在阿里云上测试一个fast-admin的项目,本地使用正常,部署线上之后发现,邮件发送不了,提示的是“Could not open SMTP Port.”,于是开始寻找各种解决办法,查25、465、587各类和邮件服务有关的端口,都做了依然报错。在这期间也提过工单,阿里云说端口没有问题,想了一下服务器没问题,我也把网上看到阿里云以及腾讯云默认封禁25端口的各类资料也整理了一下,都没解决,最后实在没有办法就跟代码执行流程吧,跑到最后发现是php服务没开,顺便把这个东西记录下来,后续遇到这个问题的小伙伴可以参考: 在txthinking/mailer/src/Mailer/STMP.php有这么一个函数:

        $this->logger && $this->logger->debug("Connecting to {$this->host} at {$this->port}");
        $host = ($this->secure == 'ssl') ? 'ssl://' . $this->host : $this->host;
        $this->smtp = @fsockopen($host, $this->port);
        //set block mode
        //    stream_set_blocking($this->smtp, 1);
        if (!$this->smtp){
            throw new SMTPException("Could not open SMTP Port."); 
        }
        $code = $this->getCode();
        if ($code !== '220'){
            throw new CodeException('220', $code, array_pop($this->resultStack));
        }

解决办法

当$this->smtp 返回为空的时候,抛出端口错误,这个连接为空,除了端口问题,还有没有别的可能呢?stmp服务器不通?后来忽然想到因为25用不了,用的是465发,那么走的是ssl连接,是不是线上openssl扩展没开,发不出去呢?然后就去服务器看了一下php的openssl 扩展果然没开,所以这个“Could not open SMTP Port.”出问题的时候,我们除了看服务器端口,不能忽视的就php的openssl扩展是不是已经打开,到此为止问题完美解决,随手把这个问题记录下来,方便遇到相同问题的小伙伴参考.

php开启openssl

leeblog:Could not open SMTP Port.”转载的小伙伴给留个连接,非常感谢

评论列表

还没有人发表评论

发表评论 取消回复