laravel 客製化變更密碼信件 2024-04-02 14:56:01

1.
//建立新的notification
php artisan make:notification PasswordReset
//複製mail的模板
php artisan vendor:publish --tag=laravel-mail
//複製notification的模板
php artisan vendor:publish --tag=laravel-notifications

 

2.更改app/Notifications/PasswordReset.php (信件客製的文字和按鈕)
(1)引入Lang
use Illuminate\Support\Facades\Lang;

 

(2)建構子帶入$token
public $token;
public function __construct($token)
{
    $this->token = $token;
}

 

(3)更改toMail
public function toMail($notifiable)
{
    if (static::$toMailCallback) {
 eturn call_user_func(static::$toMailCallback, $notifiable, $this->token);
    }
    return (new MailMessage)
 ->subject(Lang::get('信件主旨'))
 ->action(Lang::get('按鈕顯示文字'), url(route('password.reset', ['token' => $this->token, 'email' => $notifiable->getEmailForPasswordReset()], false)))
 ->line(Lang::get('這個驗證連結會在 :count 分鐘後失效.', ['count' => config('auth.passwords.'.config('auth.defaults.passwords').'.expire')]))
 ->line(Lang::get('如果您沒有申請變更密碼,請無視信件.'));
}



3.更改views/vendor/notification/email.blade.php
更改信件格式固定的文字,如:Whoops! 或 Hello!之類的

 

4.更改views/vendor/mail/html/layout.blade.php
更改模板格式