PHPMailer para PHP: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es PHPMailer y para qué sirve?

\n\n

PHPMailer es una de las bibliotecas más populares y potentes para enviar correos electrónicos en PHP. Proporciona una interfaz simple pero flexible para trabajar con los protocolos SMTP, POP3 e IMAP. A diferencia de la función estándar de PHP mail(), PHPMailer ofrece múltiples ventajas:

\n\n
    \n
  • Soporte de autenticación SMTP — envío seguro a través de servidores de correo externos (Gmail, Yandex, Mail.ru, servidor SMTP propio).
  • \n
  • Trabajo con correos HTML — creación de correos atractivos y formateados con imágenes y estilos.
  • \n
  • Archivos adjuntos — posibilidad de adjuntar archivos de cualquier tipo.
  • \n
  • Soporte UTF-8 — funcionamiento correcto con cirílico y otros idiomas.
  • \n
  • Protección contra inyección de encabezados — seguridad de su aplicación.
  • \n
  • Soporte de varias codificaciones — Base64, Quoted-Printable y otras.
  • \n
  • Trabajo con CC y BCC — copias ocultas y visibles.
  • \n
\n\n

La biblioteca se utiliza en miles de proyectos en todo el mundo, incluyendo CMS como WordPress, Drupal y Joomla. Si necesita enviar correos desde una aplicación PHP — ya sean notificaciones de registro, restablecimiento de contraseña, boletines o propuestas comerciales — PHPMailer será su herramienta indispensable.

\n\n

Instalación de PHPMailer

\n\n

PHPMailer se instala a través de Composer, el gestor de dependencias para PHP. Si aún no tiene Composer, instálelo desde el sitio oficial getcomposer.org.

\n\n

Abra la terminal en la carpeta raíz de su proyecto y ejecute el comando:

\n\n
composer require phpmailer/phpmailer
\n\n

Después de una instalación exitosa, en su proyecto aparecerán la carpeta vendor y el archivo composer.json. Para incluir la biblioteca en su script PHP, use el cargador automático de Composer:

\n\n
require 'vendor/autoload.php';
\n\n

Si no usa Composer, puede descargar la biblioteca manualmente desde GitHub e incluirla con require_once, pero se recomienda encarecidamente usar Composer para la gestión automática de dependencias.

\n\n

Inicio rápido con ejemplo de código

\n\n

Enviemos nuestro primer correo con PHPMailer. En este ejemplo, usamos el servidor SMTP de Gmail. Asegúrese de tener habilitado el acceso a aplicaciones menos seguras o use una contraseña de aplicación (App Password) para la autenticación de dos factores.

\n\n
<?php\n// Incluimos el cargador automático de Composer\nrequire 'vendor/autoload.php';\n\n// Importamos las clases de PHPMailer\nuse PHPMailer\\PHPMailer\\PHPMailer;\nuse PHPMailer\\PHPMailer\\SMTP;\nuse PHPMailer\\PHPMailer\\Exception;\n\n// Creamos una instancia de PHPMailer\n$mail = new PHPMailer(true);\n\ntry {\n    // Configuración del servidor\n    $mail->SMTPDebug = SMTP::DEBUG_OFF; // Desactivamos la depuración (para producción)\n    $mail->isSMTP();                     // Usamos SMTP\n    $mail->Host       = 'smtp.gmail.com'; // Servidor SMTP\n    $mail->SMTPAuth   = true;            // Activamos la autenticación\n    $mail->Username   = 'your_email@gmail.com'; // Su correo electrónico\n    $mail->Password   = 'your_password';        // Su contraseña o contraseña de aplicación\n    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Cifrado SSL\n    $mail->Port       = 465;             // Puerto para SSL\n\n    // Remitente y destinatario\n    $mail->setFrom('your_email@gmail.com', 'Su Nombre');\n    $mail->addAddress('recipient@example.com', 'Nombre del Destinatario');\n\n    // Contenido del correo\n    $mail->isHTML(true); // Establecemos el formato HTML\n    $mail->Subject = 'Correo de prueba de PHPMailer';\n    $mail->Body    = '<h1>¡Hola!</h1><p>Este es un correo de prueba enviado con <b>PHPMailer<'                    

Recommendations