php-mailer

Envío de correo por PHPMailer

PHPMailer es una poderosa librería de PHP que facilita el envío de correos electrónicos desde tus aplicaciones web. En este artículo, exploraremos ¿Qué es?, ¿Para qué se utiliza? , sus principales ventajas, ¿Cómo implementar el código en una página web?.

PHPMailer

¿Qué es PHP Mailer?

Librería de PHP diseñada para simplificar el proceso de envío de correos electrónicos desde un servidor web. A diferencia de la función `mail()` de PHP, además proporciona una interfaz más robusta y flexible para crear y enviar mensajes de correo electrónico.

Esta librería es ampliamente utilizada en aplicaciones web para automatizar el envío de correos electrónicos, como confirmaciones de registro, notificaciones y boletines informativos.

¿Para qué se utiliza?

Se utiliza para enviar correos electrónicos desde aplicaciones web de una manera más eficiente y segura. Ofrece varias ventajas clave en comparación con otras formas de enviar correos electrónicos en PHP:

  1. Facilidad de Uso: PHPMailer proporciona una API intuitiva y fácil de usar para construir y enviar correos electrónicos.
  2. Seguridad: Permite enviar correos de manera segura con autenticación SMTP, lo que reduce el riesgo de ser considerado spam.
  3. Adjuntos y HTML: Puedes adjuntar archivos y enviar correos en formato HTML con facilidad.
  4. Soporte para Varios Destinatarios: Envía correos electrónicos a múltiples destinatarios de manera eficiente.

¿Cómo Implementar PHPMailer en una Página Web?

Aquí hay una guía básica sobre cómo implementarlo en tu página web:

  1. Descarga PHPMailer: Descarga la última versión desde su sitio web oficial.

    El siguiente es un enlace directo al paquete de PHPMailer

    De este paquete al descomprimirlo solamente hace falta tomar los archivos que están dentro de la carpeta «src»:

    * Exception.php
    * PHPMailer.php
    * SMTP.php
    * OAuth.php
    * POP3.php

  2. Configura PHPMailer: Configuralo con los detalles de tu servidor SMTP, como el servidor, el puerto, el nombre de usuario y la contraseña. Luego se debe crear un nuevo archivo con los parámetros para realizar el envío. En este ejemplo se llamará «envio.php» y tendrá el siguiente código:
    <?php
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    
    require 'Exception.php';
    require 'PHPMailer.php';
    require 'SMTP.php';
    
    $mail = new PHPMailer(true);                              
    try {
        //$mail->SMTPDebug = 4;                               // Habilitar el debug
    
        $mail->isSMTP();                                      // Usar SMTP
        $mail->Host = 'servidor';  // Especificar el servidor SMTP reemplazando por el nombre del servidor donde esta alojada su cuenta
        $mail->SMTPAuth = true;                               // Habilitar autenticacion SMTP
        $mail->Username = '[email protected]';                 // Nombre de usuario SMTP donde debe ir la cuenta de correo a utilizar para el envio
        $mail->Password = 'miclave';                           // Clave SMTP donde debe ir la clave de la cuenta de correo a utilizar para el envio
        $mail->SMTPSecure = 'ssl';                            // Habilitar encriptacion
        $mail->Port = 465;                                    // Puerto SMTP                     
        $mail->Timeout       =   30;
        $mail->AuthType = 'LOGIN';
    
        //Recipients   
    
        $mail->setFrom('[email protected]');     //Direccion de correo remitente (DEBE SER EL MISMO "Username")
        $mail->addAddress('[email protected]');     // Agregar el destinatario
        $mail->addReplyTo('[email protected]');     //Direccion de correo para respuestas     
    
        //Content
        $mail->isHTML(true);                                  
        $mail->Subject = 'Mensaje de ejemplo';
        $mail->Body    = 'Este es solo un mensaje de ejemplo <b>en HTML!</b>';
        
        $mail->send();
        echo 'El mensaje ha sido enviado';
    
    } catch (Exception $e) {
        echo 'El mensaje no pudo ser enviado. Mailer Error: ', $mail->ErrorInfo;
    }
    
  3. Envía el Correo Electrónico: Utiliza el método `send()` para enviar el correo electrónico.
  4. Nota: tanto los archivos de PHPMailer como el archivo de los parámetros del envío deben estar en la misma carpeta.

  5. Manejo de Errores: Asegúrate de manejar posibles errores durante el proceso de envío de correo.

    En caso de que el envío no se genere, se pueden obtener más detalles del error habilitando el debug. Para ello simplemente se deben remover los // que están antes de la línea $mail->SMTPDebug = 4; y luego guardar los cambios para intentar de nuevo el envío.

Si tu sitio web está construido con un CMS como WordPress, tienes la opción de utilizar un plugin de envío SMTP que ya integre la biblioteca de PHP. En el siguiente artículo, te ofrecemos una detallada explicación sobre cómo hacerlo: SMTP Mailer

Esta es una herramienta valiosa para el envío de correos electrónicos desde aplicaciones web en PHP. Ofrece una solución flexible y segura para una variedad de casos de uso, desde confirmaciones de registro hasta boletines informativos. Con PHPMailer, puedes mejorar la comunicación con tus usuarios y automatizar el proceso de envío de correos electrónicos de manera efectiva.

Esperamos que este artículo te haya proporcionado una introducción sólida a PHPMailer y te ayude a implementarlo en tu propio proyecto web.

Imagen de perfil de Sebastian Perez
Sebastian Perez

Líder de Soporte Técnico, Colombia Hosting Integrante de la compañía desde 2014, conocedor de soluciones, avances y administración de servicios de alojamiento web y correos electrónicos. Encaminado al crecimiento continuo, común y propio de todo su equipo, en el ámbito de conocimientos tecnológicos y personales.