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:
- Usuario olvida contraseña y escribe su email
- Generas un token único y lo guardas en la base de datos
- Envías un enlace con el token al correo del usuario
- 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
¿Tienes dudas o sugerencias? ¡Déjalas en los comentarios!