You need to enable JavaScript to run this app. Laravel项目通过自有域名SMTP发信时465端口连接超时无法发送
优惠活动
大模型
产品
解决方案
定价
更多

Laravel项目通过自有域名SMTP发信时465端口连接超时无法发送

自有域名SMTP连接超时问题成因与排查方案

问题表现

之前用Mailtrap、Gmail的第三方SMTP都能正常发信,一切换自己域名的SMTP配置就直接报465端口TCP连接超时,请求根本没走到SMTP账号验证那一步。

核心成因

  • 出站链路阻断:不管是本地网络、部署服务器的安全组/主机防火墙,还是目标SMTP服务器本身的入站规则,只要把你的连接请求丢包,就会出现超时——很多网络默认会封禁465、25这类容易被滥发垃圾邮件的端口,之前测试的Mailtrap、Gmail用的587、2525端口大多是默认放通的,所以没碰到同类问题。
  • 端口和加密方式不匹配:465端口的标准用法是隐式SSL加密,当前配置用的是tls(也就是STARTTLS显式加密),哪怕网络通了,后续握手也会失败,属于极易踩的配置坑。
  • DNS解析错误:当前开发/部署环境对mail.codestudio.pk解析到了错误IP,连接请求发到了没有服务的地址,自然出现超时。
  • 基础配置漏填:MAIL_FROM_ADDRESS是空的,就算连接打通了,后面发信也会因为没有合法发件人地址报错。

排查解决步骤

  1. 先校验DNS解析正确性
    在本地终端跑nslookup mail.codestudio.pk,看返回的IP是不是你自己邮件服务器的公网IP,顺便检查本地hosts文件有没有错误的域名绑定,把解析修正了再往下测试。
  2. 分段测试端口连通性,定位阻断位置
    分别在本地开发机、项目实际运行的服务器环境下测试465端口连通性:
    • Windows PowerShell执行Test-NetConnection mail.codestudio.pk -Port 465
    • Linux/macOS执行telnet mail.codestudio.pk 465
      根据测试结果定位问题:
    • 本地测试就不通:先切换手机热点测试,如果热点环境能连上,说明原来的办公/家庭网络把465端口的出站规则封了;如果切了网络还是不通,就联系邮箱管理员确认,是不是465端口的SMTP服务根本没对公网开放,或者开了IP白名单没把你当前的IP加入允许列表。
    • 本地能连、服务器上连不上:就去检查部署服务器的安全组、主机防火墙配置,把到目标465端口的出站规则放通即可。
  3. 匹配端口与加密方式
    网络连通后,根据邮件服务器实际开放的端口调整env配置:
    • 如果使用465端口,就把MAIL_ENCRYPTION改成ssl,不要配置tls
    • 如果服务器只开了587端口支持TLS,就把MAIL_PORT改成587,保留tls的加密配置
  4. 补全漏填的基础配置
    把空着的MAIL_FROM_ADDRESS填上,和MAIL_USERNAME保持一致即可,也就是填成hamza.niazi@codestudio.pk,避免后续发信因为缺失合法发件人地址触发报错。

内容的提问来源于stack exchange,提问作者Hamza Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 12:45:06