Enviar correos con PHPMailer: recuperación de contraseña

¿Quieres automatizar el envío de correos desde tu aplicación PHP? En esta guía aprenderás a configurar PHPMailer para enviar correos de confirmación, notificaciones y, lo más importante, recuperación de contraseña. Todo con código real y pasos claros.

Configuración de PHPMailer en PHP

Primero, descarga PHPMailer desde GitHub o usa Composer:

composer require phpmailer/phpmailer

Luego, incluye PHPMailer en tu script:

<?php

                                    use PHPMailer\PHPMailer\PHPMailer;
                                    use PHPMailer\PHPMailer\SMTP;
                                    use PHPMailer\PHPMailer\Exception;

                                    require 'vendor/autoload.php';
                                    ?>

Enviar correos de confirmación y notificaciones

Ejemplo básico para enviar un correo de bienvenida:

$mail = new PHPMailer(true);

try {
    // Configuración del servidor
    $mail->isSMTP();
    $mail->Host       = 'smtp.gmail.com';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'tuemail@gmail.com';
    $mail->Password   = 'tuappkey';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port       = 587;

    // Destinatarios
    $mail->setFrom('no-reply@tudominio.com', 'Tu Sitio');
    $mail->addAddress('cliente@email.com', 'Cliente');

    // Contenido
    $mail->isHTML(true);
    $mail->Subject = 'Bienvenido a nuestra plataforma';
    $mail->Body    = '

Hola, gracias por registrarte

Ya puedes comenzar a usar tu cuenta.

'; $mail->send(); echo 'Correo enviado'; } catch (Exception $e) { echo "No se pudo enviar el mensaje. Error: {$mail->ErrorInfo}"; } ?>

Implementación de recuperación de contraseña por correo

Este es uno de los usos más importantes de PHPMailer. Aquí el flujo:

  1. Usuario olvida contraseña y escribe su email
  2. Generas un token único y lo guardas en la base de datos
  3. Envías un enlace con el token al correo del usuario
  4. Al hacer clic, puede establecer una nueva contraseña

Código del enlace en el correo:

$token = bin2hex(random_bytes(50)); // Token seguro
$enlace = "https://tudominio.com/recuperar.php?token=" . $token;

$mail->Subject = 'Recuperación de contraseña';
$mail->Body    = "

Haz clic en el siguiente enlace para recuperar tu contraseña:

Recuperar contraseña"; $mail->send();

Y en recuperar.php, validas el token antes de permitir el cambio.

¿Qué sigue después de PHPMailer?

Este es el séptimo paso del desarrollo full-stack. En el siguiente módulo, integrarás todo lo aprendido en un sistema de autenticación completo con dashboard.

Volver a la Guía Full-Stack → Ver Módulo 6: MVC en PHP →

¿Quieres la versión completa del libro?

Esta guía es una versión resumida del libro "Programación Full-Stack", que incluye:

  • ✅ Todos los ejercicios resueltos paso a paso
  • ✅ Códigos listos para copiar y probar
  • ✅ Explicaciones profundas de seguridad y buenas prácticas
  • ✅ Acceso a actualizaciones futuras
Comprar en Amazon →

¿Tienes dudas o sugerencias? ¡Déjalas en los comentarios!