XAMPP本地8080端口站点联系表单邮件发送失败求助
问题原因
报错提示连接localhost:25端口失败,核心原因是PHP读取了错误的邮件配置,优先走了内置的SMTP配置,没有调用你配置好的sendmail程序。
解决步骤
1. 修正php.ini配置
打开xampp\php\php.ini,找到[mail function]段,修改为以下内容:
[mail function] ; 注释掉下面两行,配置sendmail_path后这两个参数不生效,留着反而会干扰配置 ; SMTP=localhost:443 ; smtp_port=465 ; 配置发件人地址,填你用于发信的gmail完整地址 sendmail_from = 你的gmail完整地址 ; 保留你原来的sendmail路径配置即可 sendmail_path = "C:\xampp\sendmail\sendmail.exe -t -i"
2. 修正sendmail.ini配置
打开xampp\sendmail\sendmail.ini,修改以下参数:
[sendmail] ; 原配置写错了,gmail的SMTP地址是smtp.gmail.com不是mail.gmail.com smtp_server=smtp.gmail.com smtp_port=465 smtp_ssl=ssl ; 不需要加8080端口,8080是你web服务的端口,和发信无关 default_domain=localhost error_logfile=error.log debug_logfile=debug.log ; 这里填完整的gmail地址,不要留前后空格 auth_username=你的完整gmail地址 ; 注意:gmail现在不支持直接用账号密码登录,需要先给账号开启两步验证,再生成「应用专用密码」填在这里 auth_password=你生成的gmail应用专用密码 ; 同样不要加端口 hostname=localhost
3. 生效配置
修改完两个配置文件后,重启XAMPP的Apache服务,新配置才会生效。
额外注意事项
如果还是发信失败,可以查看xampp\sendmail\error.log里的错误日志,定位具体问题。如果是gmail权限相关的报错,确认你已经开启了账号的两步验证,并且使用的是应用专用密码而非账号原密码。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

