· Andrés Ledo · PHP  · Lectura en 3 min

PHPMailer: El envío de correos en PHP nunca fue tan fácil

Aprende a utilizar PHPMailer, la biblioteca de PHP para el envío de correos. Descubre cómo enviar correos con contenido HTML archivos adjuntos e imágenes incrustadas.

Aprende a utilizar PHPMailer, la biblioteca de PHP para el envío de correos. Descubre cómo enviar correos con contenido HTML archivos adjuntos e imágenes incrustadas.

PHPMailer es una de las bibliotecas más conocidas y utilizadas para el envío de correos en PHP. Su poder radica en su capacidad para enviar correos utilizando el protocolo SMTP, permitiendo una mayor flexibilidad y seguridad. Pero no sólo eso, PHPMailer también soporta el envío de correos con contenido HTML, archivos adjuntos, imágenes incrustadas, entre otros.

📥 Instalación de PHPMailer

Para instalar PHPMailer, lo más recomendado es utilizar Composer, el gestor de dependencias de PHP. Solo necesitas ejecutar el siguiente comando en tu terminal:

composer require phpmailer/phpmailer

📝 Uso básico de PHPMailer

Para enviar un correo con PHPMailer, primero debes crear una instancia de la clase PHPMailer\PHPMailer\PHPMailer. Luego, configura los detalles del correo y llama al método send().

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

$mail = new PHPMailer(true);

try {
    $mail->SMTPDebug = 2;                                
    $mail->isSMTP();                                      
    $mail->Host = 'smtp.mailtrap.io';  
    $mail->SMTPAuth = true;                               
    $mail->Username = 'username';                
    $mail->Password = 'password';                          
    $mail->SMTPSecure = 'tls';                            
    $mail->Port = 587;                                    

    $mail->setFrom('[email protected]', 'Mailer');
    $mail->addAddress('[email protected]', 'Joe User');     

    $mail->isHTML(true);                                  
    $mail->Subject = 'Prueba de PHPMailer';
    $mail->Body    = '<b>¡Hola mundo!</b>';
    $mail->AltBody = '¡Hola mundo!';

    $mail->send();
    echo 'Mensaje enviado correctamente';
} catch (Exception $e) {
    echo "El mensaje no pudo ser enviado. Error: {$mail->ErrorInfo}";
}

📨 Enviar correo con contenido HTML

PHPMailer permite enviar correos con contenido HTML. Para hacerlo, sólo tienes que asignar true a la propiedad isHTML y luego asignar tu código HTML al cuerpo del correo:

$mail->isHTML(true);
$mail->Body = '<h1>¡Hola mundo!</h1><p>Este es un correo de prueba enviado con PHPMailer.</p>';

📎 Enviar correo con archivos adjuntos

Para enviar un correo con un archivo adjunto, utiliza el método addAttachment():

$mail->addAttachment('/ruta/al/archivo.zip');

📷 Enviar correo con imágenes incrustadas

Para enviar un correo con una imagen incrustada, utiliza el método addEmbeddedImage():

$mail->addEmbeddedImage('ruta/a/la/imagen.jpg', 'imagen_cid');
$mail->Body = '<img src="cid:imagen_cid">';

🛠️ Configuración de PHPMailer

Para configurar PHPMailer, debes establecer algunas propiedades en tu instancia de PHPMailer\PHPMailer\PHPMailer. Aquí te muestro algunas de las más comunes:

Configuración SMTP

$mail->isSMTP();
$mail->Host = 'smtp.servidor.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'contraseña';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

Estas propiedades configuran PHPMailer para usar SMTP con autenticación y una conexión segura TLS. Debes reemplazar 'smtp.servidor.com', '[email protected]' y 'contraseña' con tus propios valores.

Configuración del remitente

$mail->setFrom('[email protected]', 'Nombre Remitente');

Esto establece la dirección de correo y el nombre del remitente.

Configuración del destinatario

$mail->addAddress('[email protected]', 'Nombre Destinatario');

Esto agrega un destinatario al correo. Puedes llamar a addAddress() varias veces para agregar múltiples destinatarios.

Configuración del asunto

$mail->Subject = 'Asunto del correo';

Esto establece el asunto del correo.

Configuración del cuerpo del correo

$mail->Body = 'Este es el cuerpo del correo.';
$mail->AltBody = 'Este es el cuerpo del correo para clientes de correo que no admiten HTML.';

Esto establece el cuerpo del correo y el cuerpo alternativo para clientes de correo que no admiten HTML.

Espero que esto te ayude a entender mejor cómo configurar PHPMailer para enviar correos en PHP. No dudes en experimentar con estas configuraciones y ver qué más puedes hacer con PHPMailer.

    Compartir
    Volver al blog

    Artículos relacionados

    Ver todos los artículos »
    Manejo de formularios en PHP

    Manejo de formularios en PHP

    Aprende a crear y procesar formularios en PHP. Descubre cómo validar y sanear los datos del formulario y cómo redirigir al usuario después de enviar...

    Bucle while en PHP

    Bucle while en PHP

    Aprende como funciona el bucle while en PHP con algunos ejemplos sencillos de entender.