Laravel 11发送邮件时自定义发件地址不生效问题求助
Laravel邮件自定义发件地址不生效的解决办法
先看邮件驱动配置
要是用的SendGrid、Mailgun这类第三方邮件服务,平台后台可能会强制用已验证的发件地址,代码里设置的from会被覆盖。得先在对应平台添加并验证jeffrey@example.com这个地址。检查全局发件地址配置
打开config/mail.php看看from项,如果这里配置了全局的地址和名称,优先级会比邮件类里的Envelope设置高。要么把全局配置注释掉,要么确保邮件类里的设置能覆盖它:// config/mail.php 里的from配置 'from' => [ // 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), // 'name' => env('MAIL_FROM_NAME', 'Example'), ],清除配置缓存
之前如果跑过php artisan config:cache,修改后的配置不会马上生效,执行下面的命令清缓存:php artisan config:clear确认邮件类调用正确
发送邮件时要确保用的是你改了Envelope方法的那个邮件类,别用错了默认类。比如发送代码得是这样:Mail::to('recipient@example.com')->send(new YourCustomMailable());检查邮箱服务商限制
要是用SMTP驱动(比如Gmail、Outlook),很多服务商不允许随便改发件地址,得是当前账号绑定的,或者开了别名/授权地址功能。先去邮箱后台把jeffrey@example.com设为授权发件地址才行。
内容的提问来源于stack exchange,提问作者user050987
相关产品推荐
相关产品推荐

