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

本地XAMPP配置Gmail SMTP发邮件出现端口连接报错如何解决

报错原因

报错提示已经明确说明PHP尝试连接localhost:25发信失败,核心问题是你写的配置没有生效,具体有几个错误点:

  • 配置项名称错误:Windows环境下PHP控制SMTP服务器的配置项是SMTP,不是你使用的smtp_server,错误的配置名不会被识别,PHP依旧读取默认的localhost作为SMTP地址
  • 配置冲突:你同时设置了sendmail_path和SMTP相关配置,Windows版PHP只要指定了sendmail_path,就会优先调用sendmail程序发信,直接忽略所有SMTP相关的ini配置
  • Gmail SMTP端口错误:Gmail早已禁用25端口明文发信,正确的加密端口为465(SSL)或587(TLS)
  • 账号认证不兼容:目前Gmail不允许直接使用账号密码调用SMTP发信,原有密码认证逻辑已经失效。
排查解决步骤
  • 第一步:选一种发信模式修正配置
    两种发信模式二选一即可,不要混用:
    1. 用XAMPP自带的sendmail.exe发信:删掉代码里所有SMTP相关的ini_set配置,只保留sendmail_path配置,然后修改C:\xampp\sendmail\sendmail.ini文件,在文件内填写Gmail的SMTP地址、端口、账号、认证信息即可。
    2. 用PHP内置SMTP逻辑发信:删掉sendmail_path的ini_set配置,修正配置项名称:
    ini_set('SMTP', 'smtp.gmail.com');
    ini_set('smtp_port', 465);
    ini_set('smtp_ssl', 'ssl');
    ini_set('error_logfile', 'error.log');
    ini_set('auth_username', 'myemailAddreds@gmail.com');
    ini_set('auth_password', '替换为应用专用密码');
    
  • 第二步:调整Gmail账号设置
    先为你的Gmail账号开启两步验证,然后在Google账号后台生成「应用专用密码」,将代码或sendmail.ini里的密码替换为生成的应用专用密码,不要使用原账号登录密码。
  • 第三步:检查网络连通性
    打开本地命令行执行telnet smtp.gmail.com 465,如果能正常连接说明网络无限制,如果连接失败需要检查本地防火墙、代理是否拦截了465/587端口的出站请求。
  • 第四步:重启服务测试
    配置修改完成后重启Apache,再运行代码测试发信即可。

内容的提问来源于stack exchange,提问作者Umar Tahir Bako

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:12:03