· 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 »
    C# Contar palabras de un texto con .NET

    C# Contar palabras de un texto con .NET

    Un ejercicio común en los estudios o incluso en una entrevista de trabajo es pedirte que hagas una función que cuente las palabras de un texto y las muestre por pantalla.

    Xamarin Forms: Lector de código de barras/QR gratis

    Xamarin Forms: Lector de código de barras/QR gratis

    En el siguiente artículo vamos a ver como leer códigos de barras o códigos QR con Xamarin, para ello utilizaremos la librería Zxing. Una librería que me gusta mucho, ya que ella sola es capaz de detectar el tipo de código de barras que tenemos y devolvernos el resultado sin nosotros tener que hacer prácticamente nada.