You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel重置邮件Markdown修改求助:无法定位对应文件

Laravel Auth重置密码邮件修改方案

1. 正确导出邮件模板文件

你之前执行的php artisan vendor:publish未指定具体标签,导致没导出对应的重置密码邮件模板。根据你的Laravel版本,执行对应命令:

  • 若使用Laravel 8+ 官方默认Auth(Breeze/Jetstream):

    php artisan vendor:publish --tag=laravel-mail
    

    或者单独导出通知模板:

    php artisan vendor:publish --tag=laravel-notifications
    

    导出后模板文件会出现在resources/views/vendor/mail或resources/views/vendor/notifications目录下。

  • 若使用laravel/ui包生成的Auth:

    php artisan vendor:publish --tag=laravel-ui-views
    

    重置密码邮件模板位于resources/views/auth/passwords/email.blade.php(纯HTML模板)或对应Markdown模板路径。

2. 修改模板移除开头哈希值

找到对应的Markdown模板(通常是resources/views/vendor/markdown/auth/passwords/reset.blade.php),开头的哈希值就是重置密码的$token变量,直接删除该变量即可。

比如默认模板可能有这样的内容:

{{ $token }}

您收到这封邮件是因为我们收到了您的账户重置密码请求...

删掉开头的{{ $token }}行,就能移除邮件开头的哈希值。

3. 自定义重置密码通知类(可选)

如果找不到模板或需要更灵活的定制,可以创建自定义通知类:

  1. 生成自定义通知类:
    php artisan make:notification CustomResetPassword
    
  2. 复制Illuminate\Auth\Notifications\ResetPassword中的代码到新类,修改toMail方法指向你自己创建的模板:
    public function toMail($notifiable)
    {
        $resetUrl = url(route('password.reset', [
            'token' => $this->token,
            'email' => $notifiable->getEmailForPasswordReset(),
        ]));
    
        return (new MailMessage)
            ->subject('重置密码通知')
            ->markdown('emails.password.reset', ['resetUrl' => $resetUrl]);
    }
    
  3. 在User模型中重写发送通知的方法:
    use App\Notifications\CustomResetPassword;
    
    public function sendPasswordResetNotification($token)
    {
        $this->notify(new CustomResetPassword($token));
    }
    

4. 清除缓存确保修改生效

修改模板后,执行以下命令清除缓存,避免旧模板缓存影响:

php artisan view:clear
php artisan config:clear

内容的提问来源于stack exchange,提问作者IN33dSomeHelp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 02:16:16