如何在 Laravel Fortify 中更改重置密码电子邮件模板?

How to change Reset password email template in Laravel Fortify?

我正在使用 fortify 进行身份验证,但是我需要更改 fortify 自动发送的“重置密码”电子邮件模板中的文本。我找不到实现此目的的方法。

是否可以使模板在 Nova 中可编辑?我在 Nova 中有一个 MailTemplate 资源,允许从 Nova 更改电子邮件模板,但我无法为“重置密码电子邮件”实现此目的,因为它是由 fortify 发送的,无法找到控制它的方法。

Fortify 使用 Laravel 中的核心通知系统发送密码重置电子邮件。负责此操作的特定文件是位于 Illuminate\Auth\Notifications.

PasswordReset.php 文件

自定义发送的电子邮件的最简单方法是复制 PasswordReset 文件并使用不同的名称(可选)将其保存到您的项目某处(例如 App\Notifications) ).

复制并根据自己的喜好对其进行自定义后,您需要覆盖继承自 CanResetPassword 特征的 User 模型上的 sendPasswordResetNotification 方法在 Authenticatable class.

/**
 * Send the password reset notification.
 *
 * @param  string  $token
 * @return void
 */
public function sendPasswordResetNotification($token)
{
    $this->notify(new App\Notifications\CustomResetPasswordNotification($token));
}

还有一些您可能想要覆盖的其他通知,例如 VerifyEmail 通知。

关于在 Nova 中管理 content/layout,我认为这是可能的。您可能需要编写一个自定义包来读取 mardown 文件,这就是您在电子邮件中使用的文件,或者为可以存储在数据库中并通过 Nova 管理的文本定义一些占位符。