服务器环境下Laravel邮件发送功能无法正常工作问题咨询
问题根因
你遇到的报错本质是服务器无法解析MAIL_HOST对应的域名,原因是你当前.env里填写的MAIL_HOST=smtp.info@myDomain.com格式错误:SMTP主机地址是纯域名格式,不能包含@符号,你错误把邮箱账号的后缀和SMTP域名拼接在了一起,导致系统无法识别这个地址。
无法与主机smtp.info@myDomain.com建立连接:stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name or service not known
排查解决步骤
- 第一步:修正SMTP主机地址
登录你服务器的Cpanel面板,进入「电子邮件账户」板块,找到你创建的info@myDomain.com账户,点击「连接设备」选项,页面会给出官方的SMTP服务器地址、端口、加密方式等参数,Cpanel默认的SMTP地址一般为mail.myDomain.com,将.env里的MAIL_HOST替换为拿到的正确地址即可。 - 第二步:校验连通性
如果修正地址后仍然报错,登录部署Laravel的服务器执行以下命令验证网络连通性:
如果无法连通,确认你的服务器是否封禁了465端口的出站规则,联系服务器提供商放行即可。telnet 你的正确SMTP地址 465 - 第三步:配置生效验证
修改完.env后执行命令清空Laravel配置缓存:
再测试邮件发送功能即可。php artisan config:clear
额外注意事项
部分Cpanel服务器要求发件人地址MAIL_FROM_ADDRESS必须和MAIL_USERNAME完全一致,你当前的配置该部分符合要求,不需要修改。
内容的提问来源于stack exchange,提问作者thestackyuser32
相关产品推荐
相关产品推荐

