Laragon下配置Laravel邮箱需确保.env中SMTP参数正确、启用OpenSSL/cURL、绕过防火墙拦截,并优先使用Mailtrap或Gmail应用专用密码;配置后必须执行php artisan config:clear。

在 Laragon 环境下配 Laravel 邮箱,本质是配置 Laravel 的 SMTP 发送能力,Laragon 本身不干预邮件逻辑,只提供本地 PHP + Apache/Nginx + MySQL 运行环境。关键在于确保 Laravel 能正确读取 `.env` 中的 SMTP 参数,并绕过本地常见拦截(如 Gmail 拒绝非可信 IP、杀毒软件劫持端口等)。
确认 Laragon 环境支持 SMTP 外发
Laragon 默认启用 OpenSSL 和 cURL,这是 SMTP 发信的基础。但需手动验证:
- 打开 Laragon 终端(右键菜单 → Terminal),运行
php -m | findstr openssl(Windows)或php -m | grep openssl(Linux/macOS),确认输出含 openssl - 检查防火墙:Laragon 本地开发时,Windows Defender 或第三方杀软可能屏蔽 587/465 端口,临时关闭测试一次
- 避免用系统默认的“localhost”作为发信域名:部分邮箱(如 QQ、163)会校验 SPF 记录,本地无 DNS 解析时易进垃圾箱;开发阶段建议用 Mailtrap 或 Gmail + 应用专用密码
Gmail SMTP 在 Laragon 中的正确配置
Gmail 是最常用也最容易踩坑的选择。必须满足三个前提:开启两步验证、生成应用专用密码、`.env` 配置严格匹配加密协议。
- 不要用 Gmail 登录密码:进入 Google 账户安全页 → 开启「两步验证」→ 进入「应用专用密码」→ 选择「邮件」+「其他」→ 生成 16 位密钥(复制时删掉所有空格)
-
.env 写法(必须):
MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=yourname@gmail.com MAIL_PASSWORD=abcd1234efgh5678 MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=yourname@gmail.com MAIL_FROM_NAME="MyApp"
- 改完立即执行
php artisan config:clear—— Laragon 不自动重载环境变量,缓存不清理就永远读不到新配置
快速验证是否通路(不用写控制器)
别急着注册页面测试,先用 tinker 一行命令确认底层链路畅通:
php artisan tinker
>> use Illuminate\Support\Facades\Mail;
>> Mail::raw('Laragon + Gmail test OK', function ($m) { $m->to('yourtest@163.com')->subject('SMTP Test'); });
若报 Connection could not be established:检查网络、DNS(可尝试 ping smtp.gmail.com)、或换用 465+ssl;
若报 535 Authentication failed:99% 是 MAIL_PASSWORD 没用应用专用密码,或用户名少写了 @gmail.com。
替代方案:Mailtrap(专为开发设计)
如果 Gmail 总被拒(尤其 Laragon 常用动态 IP,Gmail 易拉黑),推荐用 Mailtrap:
- 注册后进入 Inbox → SMTP Settings,复制 Username、Password、Host(如
smtp.mailtrap.io)、Port(通常 2525) - .env 中替换为:
MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=xxx MAIL_PASSWORD=yyy MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=test@example.com
- 无需清缓存外的额外操作,开箱即用,所有邮件都收进 Mailtrap 网页收件箱,适合截图、调试 HTML 样式
不复杂但容易忽略:Laragon 下的 Laravel 邮件配置,核心就是环境变量生效 + 端口加密匹配 + 密码类型正确。跳过任意一环都会卡在“发不出”。


















