如何在 Laravel 中更改重置密码电子邮件主题?

新手上路,请多包涵

我是 Laravel 的初学者。目前我正在学习这个框架。我当前的 Laravel 版本是 5.3。

我正在使用 php artisan make:auth 一切正常。此外,我在我的 .env 文件中配置了 gmail smtp,在 config directgory 中配置了 mail.php。一切都很好。但我看到默认情况下忘记密码的电子邮件主题是 Reset Password 。我想改变它。

我看到了一些博客。我找到了一些博客。我已经在我的网站上实现了。但同样的输出来了。

我点击了这些链接 -

https://laracasts.com/discuss/channels/general-discussion/laravel-5-password-reset-link-subject

https://laracasts.com/discuss/channels/general-discussion/reset-password-email-subject

https://laracasts.com/discuss/channels/laravel/how-to-override-message-in-sendresetlinkemail-in-forgotpasswordcontroller

原文由 Chinmay235 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 487
2 个回答

您可以更改密码重设电子邮件主题,但这需要一些额外的工作。首先,您需要创建自己的 ResetPassword 通知实现。

app\Notifications 目录中创建一个新的通知类,我们将其命名为 ResetPassword.php

 <?php

namespace App\Notifications;

use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Messages\MailMessage;

class ResetPassword extends Notification
{
    public $token;

    public function __construct($token)
    {
        $this->token = $token;
    }

    public function via($notifiable)
    {
        return ['mail'];
    }

    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject('Your Reset Password Subject Here')
            ->line('You are receiving this email because we received a password reset request for your account.')
            ->action('Reset Password', url('password/reset', $this->token))
            ->line('If you did not request a password reset, no further action is required.');
    }
}

您还可以使用 artisan 命令生成通知模板:

 php artisan make:notification ResetPassword

或者您可以简单地复制粘贴上面的代码。您可能会注意到,此通知类与默认的 Illuminate\Auth\Notifications\ResetPassword 非常相似。您实际上可以从默认的 ResetPassword 类扩展它。

唯一的区别在于,您添加了一个新的方法调用来定义电子邮件的主题:

 return (new MailMessage)
        ->subject('Your Reset Password Subject Here')

您可以 在此处阅读有关邮件通知的 更多信息。

其次,在你的 app\User.php 文件中,你需要覆盖默认的 sendPasswordResetNotification()Illuminate\Auth\Passwords\CanResetPassword 特征定义的方法。现在你应该使用你自己的 ResetPassword 实现:

 <?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Notifications\ResetPassword as ResetPasswordNotification;

class User extends Authenticatable
{
    use Notifiable;

    ...

    public function sendPasswordResetNotification($token)
    {
        // Your your own implementation.
        $this->notify(new ResetPasswordNotification($token));
    }
}

现在您的重设密码电子邮件主题应该更新了!

重置密码电子邮件主题已更新

希望这有帮助!

原文由 Risan Bagja Pradana 发布,翻译遵循 CC BY-SA 3.0 许可协议

拉维尔 8

在 AuthServiceProvider.php 中

添加这些代码。

 ResetPassword::toMailUsing(function ($notifiable, $url) {
        return (new MailMessage)
            ->subject(Lang::get('Reset Password Notification'))
            ->line(Lang::get('You are receiving this email because we received a password reset request for your account.'))
            ->action(Lang::get('Reset Password'), $url)
            ->line(Lang::get('This password reset link will expire in :count minutes.', ['count' => config('auth.passwords.' . config('auth.defaults.passwords') . '.expire')]))
            ->line(Lang::get('If you did not request a password reset, no further action is required.'));
    });

原文由 Agus Santoso 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏