· 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 »
    Tutorial MySQL

    Tutorial MySQL

    En este artículo, vamos a explorar diversos aspectos de MySQL, una de las bases de datos más populares en el mundo de la programación. A lo largo de...

    Cómo instalar Laravel

    Cómo instalar Laravel

    Aprende instalar Laravel de una forma, rápida y simple. En este artículo te explico diversos métodos de instalación.

    ¿Qué es un Dominio Web?

    ¿Qué es un Dominio Web?

    Un dominio web básicamente se encarga de traducir una dirección IP que sería la que identifica a tu servidor, a un nombre de dominio o un texto que...