¿Cómo enviar correos por PHPMailer?

Actualizado: 11 dic 2021


PHPMailer es una clase desarrollada en PHP que trata de facilitar la funcionalidades asociadas a los envíos y manejos de emails. Se basa en el componente active server ASPMail. PHPMailer permite hacer de manera sencilla trabajos complejos, como adjuntar ficheros o realizar envíos de mails con formato HTML. Es muy recomendable realizar los envíos a través del protocolo SMTP.


Existen dos clases fundamentales para el manejo de emails con PHPMailer:

  • class.phpmailer.php el cual contiene las funciones para el envío de correo.

  • class.smtp.php para enviar correo mediante servidores SMTP.

En primer lugar es necesario indicar el uso de la clase, creando una con el constructor de PHPMailer que se utilizará más adelante.


<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
?>

El siguiente paso es asignar las propiedades del correo que vamos a enviar, como el servidor de correo, subject y From. Luego, con el método AddAddress asignamos a quién, o quiénes, se va a enviar el correo. También se puede utilizar AddCC y AddBCC para las copias y copias ocultas:


$mail->Host = "localhost";
$mail->From = "remite@email.com";
$mail->FromName = "Nombre del Remitente";
$mail->Subject = "Subject del correo";
$mail->AddAddress("destino1@correo.com","Nombre 01");
$mail->AddAddress("destino2@correo.com","Nombre 02"); 
$mail->AddCC("usuariocopia@correo.com");
$mail->AddBCC("usuariocopiaoculta@correo.com"); 


Hasta aquí hemos utilizado las funciones básicas de correo, pero ahora viene la parte del cuerpo del mensaje. Se puede enviar correo en formato HTML e incluso definir un texto que se mostrará si es que el lector de correo no soporta HTML.



$body  = "Hola <strong>amigo</strong><br>";
$body .= "probando <i>PHPMailer<i>.<br><br>";
$body .= "<font color='red'>Saludos</font>";
$mail->Body = $body;
$mail->AltBody = "Hola amigo\nprobando PHPMailer\n\nSaludos";

Si deseamos añadir un archivo adjunto a nuestro mensaje utilizamos el método AddAttachment, el cual recibe dos parámetros, el primero es la ruta del archivo que vamos a incluir y el segundo es el nombre que se va a mostrar en el correo para este archivo.


$mail->AddAttachment("images/foto.jpg", "foto.jpg");
$mail->AddAttachment("files/demo.zip", "demo.zip");


Finalmente, el envío del correo se hace con la función send(). Uniendo todas las partes del código ejemplo tenemos:


require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->Host = "localhost";
 
$mail->From = "remite@email.com";
$mail->FromName = "Nombre del Remitente";
$mail->Subject = "Subject del correo";
$mail->AddAddress("destino1@correo.com","Nombre 01");
$mail->AddAddress("destino2@correo.com","Nombre 02"); 
$mail->AddCC("usuariocopia@correo.com");
$mail->AddBCC("usuariocopiaoculta@correo.com");
 
$body  = "Hola <strong>amigo</strong><br>";
$body .= "probando <i>PHPMailer<i>.<br><br>";
$body .= "<font color='red'>Saludos</font>";
$mail->Body = $body;
$mail->AltBody = "Hola amigo\nprobando PHPMailer\n\nSaludos";
$mail->AddAttachment("images/foto.jpg", "foto.jpg");
$mail->AddAttachment("files/demo.zip", "demo.zip");
$mail->Send();





Ventajas e inconvenientes



PHPMailer es una librería escrita en php para enviar emails basada en el componente active server ASPMail. Permite de una forma sencilla tareas complejas como

por ejemplo:

Enviar mensajes de correo con ficheros adjuntos (attachments). Enviar mensajes de correo en formato HTML. Con PHPMailer se pueden enviar emails via sendmail, PHP mail(), o con SMTP.


Es posible enviar un email con la función mail() de php, pero dicha función no permite algunas de las características más populares que proporcionan los clientes de correo usados actualmente. Entre estas características se encuentran el envío de email con ficheros adjuntos.


PHPMailer, hace esta tarea muy sencilla e incluso puede utilizar su propio servidor de SMTP aunque éste requiera autenticación (un nombre de usuario y contraseña), con lo que se podrá usar una cuenta gratuita de correo obtenida por ejemplo en hotpop.


35 visualizaciones1 comentario

Entradas Recientes

Ver todo