1

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

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

4

1 回答 1

3

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

自定义发送的电子邮件的最简单方法是制作PasswordReset文件的副本并将其保存到您的项目中的某个位置(例如App\Notifications)以不同的名称(可选)。

一旦复制并根据自己的喜好对其进行自定义,您就需要覆盖模型sendPasswordResetNotification上的方法,该方法User继承自类的CanResetPassword特征Authenticatable

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

当您在那里时,您可能希望覆盖其他一些通知,例如VerifyEmail通知。

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

于 2021-05-28T09:38:40.343 回答