Base de Conocimiento
Envío de correo utilizando PHPMailer
Escrito por Ivan Fernando Duque en 07 October 2016 03:31 PM

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

Inicialmente es necesario descargar los archivos de la librería en https://github.com/PHPMailer/PHPMailer haciendo clic en "Clone or download" y luego en "Download ZIP". El siguiente es un enlace directo al paquete: https://github.com/PHPMailer/PHPMailer/archive/master.zip

De este paquete al descomprimirlo solamente hace falta tomar los archivos:

* PHPMailerAutoload.php
* class.phpmailer.php
* class.smtp.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
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

//$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 = 'correo@sudominio.com';                 // 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->setFrom('correo@sudominio.com'); //Direccion de correo remitente
$mail->addAddress('hola@dominio.net');     // Agregar el destinatario
$mail->addReplyTo('correo@sudominio.com'); //Direccion de correo para respuestas

$mail->isHTML(true);                                  // Habilitar contenido HTML

$mail->Subject = 'Mensaje de ejemplo';
$mail->Body    = 'Este es solo un mensaje de ejemplo <b>en HTML!</b>';

if(!$mail->send()) {
    echo 'El mensaje no pudo ser enviado';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'El mensaje ha sido enviado';
}

- Para realizar el envío desde una cuenta de correo con el servicio de correos de Gmail:

<?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 4;                               // Habilitar el debug

$mail->isSMTP();                                      // Usar SMTP
$mail->Host = 'smtp.gmail.com';  // Especificar el servidor SMTP
$mail->SMTPAuth = true;                               // Habilitar autenticacion SMTP
$mail->Username = 'correo@gmail.com';                 // 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->setFrom('correo@gmail.com'); //Direccion de correo remitente
$mail->addAddress('hola@dominio.net');     // Agregar el destinatario
$mail->addReplyTo('correo@gmail.com'); //Direccion de correo para respuestas

$mail->isHTML(true);                                  // Habilitar contenido HTML

$mail->Subject = 'Mensaje de ejemplo';
$mail->Body    = 'Este es solo un mensaje de ejemplo <b>en HTML!</b>';

if(!$mail->send()) {
    echo 'El mensaje no pudo ser enviado';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'El mensaje ha sido enviado';
}

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.

(3 votes)
El artículo fue de ayuda
El artículo no fue de ayuda

Sistema de Soporte de ColombiaHosting