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

PHP中mail()函数无法正常工作,如何正确配置SMTP与smtp_port?

解决PHP mail()函数无法发送邮件的配置问题

你踩的坑其实是很多新手都会遇到的——核心问题在于没有使用正确的SMTP服务端,localhost:25默认是没有运行可用的SMTP服务的,尤其是你想用Gmail账号发邮件,得直接对接Gmail的官方SMTP服务器才行。我给你一步步修正配置:

1. 修正php.ini的[mail function]配置

注意:当你使用sendmail.exe作为邮件发送代理时,php.ini里的SMTP和smtp_port其实会被忽略,真正生效的是sendmail.ini的配置,但我们还是要确保sendmail_path正确,并且补充必要参数:

[mail function]
; 这两个配置仅作参考,实际由sendmail.ini控制
SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = myemailaddress@gmail.com
; 新增 -i 参数,避免邮件正文换行导致发送失败
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t -i"

2. 关键修正sendmail.ini配置

这是你之前配置的核心错误点,必须把SMTP服务器换成Gmail的官方地址,同时匹配正确的端口和SSL设置:

[sendmail]
; 替换为Gmail的SMTP服务器,不要用localhost
smtp_server=smtp.gmail.com
; 使用587端口(TLS加密),465端口(SSL加密)也可以,二选一
smtp_port=587
; 对应端口设置加密方式:587用tls,465用ssl,不要用auto
smtp_ssl=tls
error_logfile=error.log
debug_logfile=debug.log
; 填写完整的Gmail邮箱地址
auth_username=myemailaddress@gmail.com
; 重点:这里不能用Gmail的普通登录密码!
; 必须使用「应用专用密码」(前提是你的Gmail账号开启了两步验证)
; 如果没开两步验证,先去账号设置里开启,再生成应用专用密码
auth_password=你的Gmail应用专用密码
; 必须和auth_username一致
force_sender=myemailaddress@gmail.com

3. 必做的后续检查

  • 重启Apache服务:修改配置后一定要重启XAMPP的Apache,否则新配置不会生效。
  • 查看日志文件:sendmail目录下的error.log和debug.log是排查问题的关键!如果发送失败,直接看日志里的报错信息(比如密码错误、端口被防火墙拦截、SSL证书问题)。
  • 防火墙/杀毒软件放行:有些本地安全软件会拦截sendmail.exe的网络请求,暂时关闭或者把sendmail.exe加入白名单试试。

测试脚本

用下面的简单脚本测试邮件发送:

<?php
$to = "你的测试接收邮箱@example.com";
$subject = "PHP Mail 测试邮件";
$message = "这是通过PHP mail()函数配合sendmail发送的测试邮件。";
$headers = "From: myemailaddress@gmail.com\r\n";
$headers .= "Reply-To: myemailaddress@gmail.com\r\n";
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";

if(mail($to, $subject, $message, $headers)){
    echo "邮件发送成功!";
} else {
    echo "邮件发送失败,请查看sendmail日志排查问题。";
}
?>

如果是用其他邮箱(比如Outlook、QQ邮箱),只需要替换对应的SMTP服务器和端口即可:

  • Outlook/Office365:smtp.office365.com,端口587,加密方式tls
  • QQ邮箱:smtp.qq.com,端口465,加密方式ssl

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:52:36