如何在 XAMPP 中配置 Sendmail 插件使用 Gmail SMTP 发送邮件

浅磊酱_2011

浅磊酱_2011

2026-04-05

472人浏览

原创

xampp 自带的 sendmail.exe 无法直连 gmail 是因不支持 oauth2 且 gmail 已禁用密码登录;必须启用两步验证后使用 16 位应用专用密码,正确配置 sendmail.ini(smtp.gmail.com:587、starttls、auth_username 为完整邮箱、force_sender 一致),并确保 php.ini 中 sendmail_path 路径正确且重启 apache。

如何在 xampp 中配置 sendmail 插件使用 gmail smtp 发送邮件

为什么 XAMPP 自带的 sendmail.exe 不能直接连 Gmail

XAMPP Windows 版附带的 sendmail.exe 是一个轻量 SMTP 客户端代理,不是完整邮件服务器,它本身不支持 OAuth2,而 Gmail 自 2022 年 5 月起已全面禁用“用户名+密码”(即普通登录)方式的 SMTP 认证。你看到的 SMTP Error: Could not authenticate534-5.7.9 Application-specific password required 错误,基本都源于此。

可行路径只有两条:启用 Gmail 的「应用专用密码」(需开启两步验证),或改用支持 OAuth2 的替代方案(如 msmtp)。对本地开发环境来说,前者更简单、可快速验证逻辑。

  • 必须先在 Google 账户中开启两步验证 → 才能生成「应用专用密码」
  • 生成的应用专用密码是 16 位字母组合(无空格),仅用于 SMTP 登录,不是你的 Gmail 密码
  • sendmail.exe 配置里填的是这个 16 位密码,不是账户密码

修改 sendmail.ini 启用 Gmail SMTP(TLS + 应用专用密码)

路径通常是 XAMPP\sendmail\sendmail.ini。关键配置项必须严格匹配 Gmail 的要求:端口 587、STARTTLS、认证开启、且用户名为完整邮箱地址。

打开文件,找到并修改以下几行(其余保持默认即可):

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=your.email@gmail.com
auth_password=abcd efgh ijkl mnop  
  • 确保 auth_password 中没有空格或换行;复制时容易多带一个空格,导致认证失败
  • force_sender 必须与 auth_username 一致,否则 Gmail 会拒收(报 553 5.7.1 Sender address rejected
  • 不要改 smtp_ssl=auto 或设为 ssl —— Gmail 的 587 端口只接受 STARTTLS,设成 ssl 会连接超时

PHP mail() 函数调用前的必要检查

即使 sendmail.ini 配好了,PHP 还得知道去哪调用它。检查 php.ini(XAMPP 控制面板 → Config → PHP (php.ini))中以下两项:

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

注意路径中的反斜杠要转义,且末尾必须带 -t 参数(让 sendmail 从邮件头读取收件人,而不是命令行传参)。

  • 改完 php.ini 后必须重启 Apache,否则不生效
  • 测试脚本里不要用 mail("to@example.com", ...) 硬编码收件人;要靠 headers 传,例如:
    $headers = "To: test@gmail.com\r\nFrom: your.email@gmail.com"; mail("", "test", "body", $headers);
  • 如果遇到 Warning: mail(): Failed to connect to mailserver,大概率是 sendmail_path 路径错、没加引号,或 sendmail.exe 被杀毒软件拦截

常见失败现象和对应排查点

不是配完就能发,Windows 下有几个隐蔽但高频的坑:

  • 杀毒软件(尤其是 McAfee、Avast)会静默拦截 sendmail.exe 外连 —— 暂时禁用或添加信任后重试
  • Gmail 后台可能显示「低安全性应用访问」被阻止,但该开关已于 2022 年彻底移除;如果你看到相关提示,说明你还在用账户密码登录,不是应用专用密码
  • 使用企业 Gmail(Google Workspace)账号时,管理员可能禁用了「应用专用密码」功能,需联系管理员开启
  • debug.log 文件里若出现 Connection refused,优先检查防火墙是否放行了出站 587 端口

应用专用密码是临时解法,Gmail 可能在未来进一步限制;生产环境务必迁移到 SMTP 封装库(如 PHPMailer + OAuth2),但本地开发调试,这条路够用且可控。

gmail邮箱
gmail邮箱

gmail邮箱是一款直观、高效、实用的电子邮件应用。免费提供15GB存储空间,可以永久保留重要的邮件、文件和图片,使用搜索快速、轻松地查找任何需要的内容,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
常用的mysql管理工具
常用的mysql管理工具

常用的mysql管理工具有:1、MySQL Workbench、phpMyAdmin、MySQL Shell、Navicat、DBeaver和DataGrip。更多关于mysql管理工具的问题,详情请看本专题下面的文章,php中文网欢迎大家前来学习。

2023.11.03

4770

11

phpmyadmin导入sql文件失败怎么办
phpmyadmin导入sql文件失败怎么办

在phpmyadmin导入sql文件失败时,可以尝试以下解决方案:1、检查文件权限和格式;2、确保文件字符集与数据库兼容;3、确认表结构兼容;4、检查外键约束和禁用外键检查;5、增加最大上传文件大小;6、分批导入或使用命令行导入;7、联系托管提供商寻求帮助。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.02

2584

7

phpmyadmin怎么改成中文
phpmyadmin怎么改成中文

通过安装中文语言包、将其上传到 phpmyadmin 目录、修改配置文件和重启 phpmyadmin,可以将 phpmyadmin 的界面改为中文。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

601

5

phpmyadmin访问不了怎么回事
phpmyadmin访问不了怎么回事

phpmyadmin 无法访问可能是以下原因造成:1、服务器问题:mysql 服务未运行或防火墙阻止访问;2、配置问题:安装/配置错误、错误的配置文件设置或缺少必要的 php 扩展;3、浏览器问题:浏览器缓存、扩展干扰或浏览器不兼容;4、其他原因:dns 问题、恶意软件或网络连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

719

6

phpMyAdmin安装教程大全
phpMyAdmin安装教程大全

本专题整合了phpMyAdmin程序安装相关教程,阅读专题下面的文章了解更多详细内容。

2025.10.31

785

23

PHPMyadmin配置
PHPMyadmin配置

本专题整合了phpmyadmin配置相关教程,阅读专题下面的文章了解更多详细步骤。

2025.12.04

449

19

XAMPP 与 phpMyAdmin 数据库管理实操
XAMPP 与 phpMyAdmin 数据库管理实操

专注于 XAMPP 内置的 phpMyAdmin 数据库管理工具,系统讲解数据库和数据表的创建与设计、SQL 语句执行、CSV/SQL 格式数据的导入导出、定时备份与一键还原、多数据库批量管理等日常操作,帮助开发者高效管理本地 MySQL 数据。

2026.04.08

295

26

XAMPP用法详解
XAMPP用法详解

本专题整合了XAMPP相关用法介绍,阅读专题下面的文章了解更多详细内容。

2026.04.08

213

20

XAMPP 安装与快速入门指南
XAMPP 安装与快速入门指南

面向零基础用户,详细介绍 XAMPP 在 Windows、macOS、Linux 三大平台上的下载、安装步骤、首次启动配置、控制面板使用以及 Apache/MySQL 服务的基本启停操作,帮助初学者在最短时间内搭建起可用的本地开发环境。

2026.04.08

170

23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133万人学习