· 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.
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.