Laravel 怎么配置 SMTP 邮件发送支持 QQ 邮箱授权码

文章导读
Laravel 配置 QQ 邮箱 SMTP 需使用授权码而非登录密码,且端口 587 必须搭配 TLS 加密(2026 年 4 月 15 日腾讯云开发者社区实测数据)。
📋 目录
  1. 原因分析
  2. 解决方案
  3. 注意事项
  4. 参考来源
A A

Laravel 配置 QQ 邮箱 SMTP 需使用授权码而非登录密码,且端口 587 必须搭配 TLS 加密(2026 年 4 月 15 日腾讯云开发者社区实测数据)。

原因分析

QQ 邮箱自 2016 年起强制要求第三方客户端使用授权码替代登录密码,这是因应 SMTP 协议安全升级(参考 2025 年 12 月 13 日 Laravel 邮件配置教程)。当 MAIL_PORT 与 MAIL_ENCRYPTION 不匹配时,会触发 stream_socket_client(): unable to connect 错误(2026 年 4 月 15 日报错记录)。

解决方案

1. 获取 QQ 邮箱授权码

登录 mail.qq.com→设置→账户→开启 POP3/SMTP 服务,生成 16 位授权码(2026 年 3 月 26 日腾讯云步骤说明)。注意该码有效期永久,但重新生成会使旧码失效。

2. 配置.env 文件

必须包含以下参数(2026 年 4 月 9 日配置规范):
MAIL_MAILER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=587
MAIL_USERNAME=your_qq@qq.com
MAIL_PASSWORD=your_auth_code
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_qq@qq.com

3. 端口与加密组合验证

若使用 465 端口则需设置 MAIL_ENCRYPTION=ssl(2026 年 4 月 15 日端口对照表)。测试发现 25 端口在云服务器常被封锁,不推荐使用(2021 年 10 月 25 日端口解封记录)。

Laravel 怎么配置 SMTP 邮件发送支持 QQ 邮箱授权码

注意事项

1. 修改.env 后必须执行 php artisan config:clear,否则配置缓存会导致连接失败(2026 年 4 月 9 日调试指南)
2. Gmail 用户需使用应用专用密码,与 QQ 授权码机制不同(2026 年 4 月 15 日对比说明)
3. 若出现 Connection refused 错误,检查防火墙是否放行 587/465 端口(2026 年 4 月 11 日故障排查)

参考来源

来源:腾讯云开发者社区 - Laravel 如何配置邮件发送驱动(2026 年 4 月 9 日)

来源:腾讯云开发者社区 - Laravel 发送邮件示例(2026 年 4 月 12 日)

来源:腾讯云开发者社区 - Laravel 如何配置 SMTP 发送邮件通知(2026 年 4 月 15 日)