自定义密码重置邮件在Laravel

时间:2015-05-28 06:22:53

标签: email laravel

如何更改laravel中密码重置电子邮件中显示的内容? 就像用他的名字向用户说话并显示密码重置链接等。 该电子邮件视图位于何处?

2 个答案:

答案 0 :(得分:4)

在Laravel 5.3中,他们更改了整个密码重置代码,因此给定的答案不再适用。

如果您想更改基本文本,您应该将vendor / laravel / framework / src / Illuminate / Auth / Notifications / ResetPassword.php复制到您自己的应用程序中的某个位置(例如app / Notifications / ResetPassword.php),设置正确的命名空间并根据需要更改文本。 (不要改变原来的ResetPassword.php,因为改变供应商文件夹中的文件是不好的做法!)

然后向User类添加sendPasswordResetNotification方法,并确保引用相应的ResetPassword类:

use App\Notifications\ResetPassword;

...

public function sendPasswordResetNotification($token) {
    $this->notify(new ResetPassword($token));
}

如果您想更改邮件模板的其余部分(也用于所有其他邮件),请执行以下操作:

运行php artisan vendor:publish

这会将某些刀片从vendor文件夹复制到resources / views / vendor 您要更改资源/ views / vendor / notifications / email.blade.php。

希望这对陷入Laravel 5.3的人有帮助

答案 1 :(得分:2)

是的,您可以更改位于

的电子邮件模板
 resources/views/emails/password.blade.php.

对于自定义,将User模型的实例传递给此视图并在其中回显用户名,如:

Hello, {{$user->username}}
//And Body of Reset link goes here

laravel 5.3 +

的更新

在更新的laravel版本中,代码结构进行了修改。 密码重置邮件现在位于 vendor / laravel / framework / src / Illuminate / Auth / Notifications / ResetPassword.php

及其相应的模板位于: 资源/视图/供应商/通知/ email.blade.php

因此,为了自定义它,您可能需要:

  • 将其复制到应用目录中的某个位置。
  • 设置适当的命名空间以引用它。
  • 向User class&添加新方法将它引用到新复制的类
  • 定制