php-mailer

Envío de correo por PHPMailer

En este artículo podrá encontrar un ejemplo sobre como realizar un envío desde PHP utilizando la librería PHPMailer.

 

PHPMailer

Inicialmente, es necesario descargar los archivos de la librería haciendo Clic aqui  haciendo clic en «Clone or download» y luego en «Download ZIP». 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

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:

Para realizar el envío desde una cuenta de correo con el servicio de correos en ColombiaHosting:

<?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;
}

 

Nota:  Tanto los archivos de PHPMailer como el archivo de los parámetros del envío deben estar en la misma carpeta.

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.

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.