You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP与MySQL实现邮件验证时webmail报SMTP connect()失败

修复方案

你代码的核心问题是加密方式和端口配置冲突,以下是具体问题和排查步骤:

  • 加密与端口不匹配:你设置了$mail->SMTPSecure = "ssl",但同时指定了$mail->Port = 25。SSL加密的SMTP服务默认使用465端口,25端口为非加密SMTP的默认端口,绝大多数邮件服务商不支持在25端口上走SSL连接,这是你报错的最主要原因。
    你可以根据你的邮件服务商支持的协议二选一修改:
    1. 保留SSL加密:将端口改为$mail->Port = 465;
    2. 使用TLS加密:将加密方式改为$mail->SMTPSecure = "tls";,同时端口改为$mail->Port = 587;
    3. 无需加密:将加密方式改为$mail->SMTPSecure = "";,保留25端口即可。
  • 验证SMTP配置正确性:确认你域名对应的SMTP地址确实是smtp.domain.in,部分邮件服务商的SMTP地址为mail.domain.in,具体以你服务商给出的配置为准。同时确认admin@domain.in的密码正确,部分服务商要求使用独立的SMTP授权码而非账号登录密码。
  • 检查服务器端口限制:确认你的网站所在服务器的出站端口25/465/587没有被防火墙或安全组封禁,很多云服务商默认会封禁25端口用于防范垃圾邮件,需要手动放行对应出站端口。
  • 如需更详细的错误信息,可以临时将$mail->SMTPDebug = 2,运行后会输出完整的SMTP连接日志,可以更快定位是解析失败、端口不通还是账号认证错误的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:45:03