如何在 Laravel 中正确配置 Gmail SMTP 实现邮件发送

碧海醫心

碧海醫心

2026-07-29

335人浏览

原创

如何在 Laravel 中正确配置 Gmail SMTP 实现邮件发送

本文详解 laravel 应用连接 gmail smtp 时出现“username and password not accepted”错误的完整解决方案,涵盖两步验证启用、app password 生成、.env 配置修正及代码注意事项。

本文详解 laravel 应用连接 gmail smtp 时出现“username and password not accepted”错误的完整解决方案,涵盖两步验证启用、app password 生成、.env 配置修正及代码注意事项。

当 Laravel 项目使用 Gmail 作为 SMTP 服务发送邮件时,报错 Failed to authenticate on SMTP server... 535-5.7.8 Username and Password not accepted 是典型的身份认证失败提示。根本原因在于:Gmail 已全面停用「普通密码登录」SMTP 的方式,必须改用「应用专用密码(App Password)」配合两步验证(2-Step Verification)启用后才能通过 SMTP 认证。

✅ 正确配置步骤(Gmail + Laravel)

1. 启用 Google 账户两步验证

  • 登录 Google 账户安全中心
  • 找到 “两步验证” → 点击“开启”并完成设置(需手机或安全密钥验证)
  • ⚠️ 注意:必须使用独立的 Gmail 测试账号(如 phptest01072003@gmail.com),切勿使用已绑定重要服务的主账号

2. 生成 App Password(关键!)

  • 在开启两步验证后,返回同一安全页面 → 找到 “应用专用密码”(App passwords)
  • 点击生成 → 选择应用类型为 “邮件”,设备选 “其他(自定义名称)”(例如填 Laravel-SMTP)
  • Google 将生成一个 16 位一次性密码(如 abcd efgh ijkl mnop),复制此密码(不含空格) —— 这才是 .env 中应填写的 MAIL_PASSWORD

❗ 错误做法:直接使用 Gmail 账户登录密码(会失败);或未开启两步验证就尝试生成 App Password(选项不可见)。

3. 修正 .env 配置(重点格式与值)

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=phptest01072003@gmail.com   # ✅ 必须是完整邮箱地址(非别名)
MAIL_PASSWORD=abcd1234efgh5678             # ✅ 替换为上一步生成的16位App Password(无空格)
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=phptest01072003@gmail.com  # ✅ 建议显式设置(避免null导致from校验失败)
MAIL_FROM_NAME="HJ KING"
  • MAIL_USERNAME 和 MAIL_FROM_ADDRESS 必须一致且为真实 Gmail 地址;
  • MAIL_PASSWORD 绝对不可包含空格或特殊字符(App Password 本身不含空格,粘贴时请手动删除所有空格);
  • 若仍失败,可临时尝试 MAIL_PORT=465 + MAIL_ENCRYPTION=ssl 组合(但推荐优先用 587/tls)。

4. 优化邮件发送代码(修复潜在问题)

您原始代码中存在两个风险点:

Laravel 13.2.0
Laravel 13.2.0

PHP中文网提供Laravel 13.2.0版本下载,Laravel框架 是基于 PHP 8.3+ 的高性能框架,官方推荐通过 Composer 安装。它内置 AI SDK、JSON:API Resources 及原生向量搜索,支持属性驱动开发与队列路由,大幅提升开发效率。相比旧版,13.2.0 优化了缓存 TTL 管理与实时通信,无需 Redis 即可横向扩展。作为现代 Web 开发首选,它兼顾安全与极速体验,助您快速构建企业级应用。

下载

✅ 修正后的控制器方法示例:

public function html_email()
{
    $data = ['name' => 'HJ KING'];

    try {
        Mail::send('layout.forgotpasswordmodel', $data, function ($message) {
            $message->to(session('forgotemail'), 'HII, ' . session('forgotfname'))
                    ->subject('ForgotPassword')
                    ->from(env('MAIL_FROM_ADDRESS'), env('MAIL_FROM_NAME')); // ✅ 显式读取.env配置
        });

        return redirect()->back()->with('success', 'MAIL SENT SUCCESSFULLY');
    } catch (\Exception $e) {
        \Log::error('Email sending failed: ' . $e->getMessage());
        return redirect()->back()->withErrors(['email' => 'Failed to send email. Check SMTP config.']);
    }
}

5. 其他必要检查项

  • ✅ 确认 Gmail 账号未开启「安全性较低的应用访问权限」(该选项已弃用,不再有效);
  • ✅ 检查是否误启用了「Captcha 验证」——若近期频繁失败登录,Google 可能临时锁定 SMTP 访问,需访问 https://www.php.cn/link/1d166f79c869c8d4a03e578e0e4e8ad8 解锁;
  • ✅ Laravel 缓存配置:修改 .env 后务必执行
    php artisan config:clear
    php artisan cache:clear
    composer dump-autoload

? 提示:生产环境建议使用专业邮件服务(如 Mailgun、Postmark 或 SendGrid),既规避 Gmail 限制,又提升送达率与可监控性。

通过以上四步严格配置,99% 的 Gmail SMTP 认证失败问题均可解决。核心口诀:开两步验证 → 生 App Password → 配一致邮箱 → 清缓存重试

相关文章

gmail邮箱
gmail邮箱

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

下载

相关标签:

laravel

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

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

2024.04.09

672

10

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

2024.04.09

627

9

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

2024.04.09

1111

10

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.10

1546

7

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

2025.08.05

1899

22

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

2025.08.05

1223

13

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

2025.08.05

2691

7

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

2026.03.04

1087

29

Laravel 框架安装指南
Laravel 框架安装指南

本指南详解 Laravel 框架安装全流程,涵盖 PHP 8.1+ 环境配置、Composer 依赖管理工具安装及国内镜像源优化。重点演示使用 composer create-project 命令创建 Laravel 10/11 项目,解决常见安装错误与依赖冲突。从环境搭建到项目初始化,助您快速完成 Laravel 开发环境部署,为后续 Web 应用开发奠定基础。适合 PHP 初学者与框架迁移开发者参考。

2026.04.09

91

6

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何安装 Composer
如何安装 Composer

共1课时 | 128人学习

Composer手册
Composer手册

共0课时 | 0人学习