Saltar al contenido

Sobrescribir la notificación para recuperar la contraseña en Laravel es muy sencillo, pero existen varias formas de hacerlo, aquí te explico 2 formas.

Todos los ejemplos para sobrescribir el correo para recuperar la contraseña en Laravel explicados aquí son válidos para Fortify y Breeze. Sobrescribir el correo para recuperar la contraseña en Laravel con una notificación La primera forma es además de sencilla la más completa, lo único que debemos hacer es crear una notificación en Laravel y hacer que el modelo User la utilice una vez el usuario ha solicitado modificar su contraseña.

Para crear dicha notificación simplemente debemos ejecutar el siguiente comando en nuestro proyecto.

php artisan make:notification ResetPassword

Una vez hecho, vamos a abrirlo y actualizamos su código por el siguiente.

<?php

namespace App\Notifications;

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

class ResetPassword extends Notification
{
    use Queueable;

    private string $token;

    /**
     * Create a new notification instance.
     *
     * @param string $token
     */
    public function __construct(string $token)
    {
        $this->token = $token;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return MailMessage
     */
    public function toMail( $notifiable ) {
        $link = route("password.reset", ["token" => $this->token]);
        return ( new MailMessage )
            ->greeting("Hola,")
            ->subject( 'Restablecer contraseña')
            ->line( "Recibes este correo electrónico porque hemos recibido una solicitud de restablecimiento de contraseña para tu cuenta.")
            ->action( 'Restablecer ahora', $link)
            ->line( 'Si no has solicitado el restablecimiento de tu contraseña puedes olvidar este mensaje.')
            ->line( 'Este enlace caducará en 60 minutos.');
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

Puedes ver que lo único que hacemos es inicializar el token de seguridad requerido para recuperar la contraseña en Laravel y definir el contenido del mensaje en el método toMail.

El siguiente paso es clave, y es decirle al modelo User que utilice esta clase notificación cuando el usuario desee recuperar su contraseña. Dicho esto, abre el modelo User y añade el siguiente código.

<?php

namespace App\Models;

use App\Notifications\ResetPassword;

// más use

class User extends Authenticatable
{
  
    // más código
  

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

Sobrescribir la template para recuperar la contraseña en Laravel Esta segunda parte es más sencilla, y, aunque en muchos casos pueda servir, no será así si necesitas más personalización. La solución pasa por publicar el recurso laravel-notifications para poder personalizar directamente el código Blade.

Para conseguirlo, simplemente ejecuta el siguiente comando en tu proyecto y selección la opción laravel-notifications.

php artisan vendor:publish

Una vez hecho, verás un mensaje como el siguiente.

Copied Directory [/vendor/laravel/framework/src/Illuminate/Notifications/resources/views] To [/resources/views/vendor/notifications] Publishing complete.

A partir de ahora simplemente debes personalizar ese archivo y tu correo para recuperar la contraseña en Laravel se verá alterado. Mi recomendación Mi recomendación pasa por utilizar las 2 formas que te he ofrecido aquí conjuntamente, de esta manera tendrás el control total para recuperar la contraseña en Laravel.

school Curso completo

Curso Laravel 12
Completo 2026

El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.

access_time 8 horas de contenido
layers 4 tecnologías en 1
update 100% actualizado
code Proyectos prácticos
Ver Curso Laravel 12 arrow_forward

star Incluido en cualquier suscripción

Rutas de aprendizaje