Cómo configurar PHPMailer en cPanel

PHPMailer es una biblioteca de correo electrónico de PHP que te permite enviar correos electrónicos utilizando SMTP. En este artículo, te mostraremos cómo configurar PHPMailer en cPanel para que puedas enviar correos electrónicos desde tu sitio web.

Paso 1: Descarga de la biblioteca PHPMailer

Lo primero que debes hacer es descargar la biblioteca PHPMailer. Puedes descargarla desde el sitio web oficial «Aqui». Después de descargarla, extrae el archivo ZIP y sube la carpeta «PHPMailer» a tu cPanel.

Paso 2: Crea un archivo PHP para enviar correos electrónicos

Crea un archivo PHP en el directorio de tu sitio web que utilizarás para enviar correos electrónicos. En este archivo, incluye la siguiente línea de código para cargar la biblioteca PHPMailer:

require 'PHPMailer/PHPMailerAutoload.php';

Paso 3: Configuración de PHPMailer

Antes de poder enviar correos electrónicos utilizando PHPMailer, debes configurar la biblioteca. A continuación, se muestra un ejemplo de configuración que puedes utilizar para enviar correos electrónicos desde tu sitio web utilizando SMTP:

$mail = new PHPMailer;

// Servidor SMTP
$mail->isSMTP();
$mail->Host = 'smtp.dominio.com'; o ´localhost´;
$mail->SMTPAuth = true;
$mail->Username = 'tucorreo@dominio.com';
$mail->Password = 'tupassword';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465; o 587;

// Correo electrónico del remitente
$mail->setFrom('tucorreo@dominio.com', 'Tu Nombre');

// Correo electrónico del destinatario
$mail->addAddress('destinatario@dominio.com', 'Destinatario');

// Contenido del correo electrónico
$mail->isHTML(true);
$mail->Subject = 'Asunto del correo electrónico';
$mail->Body    = 'Contenido del correo electrónico';

// Envío del correo electrónico
if(!$mail->send()) {
    echo 'Error al enviar el correo electrónico: ' . $mail->ErrorInfo;
} else {
    echo 'El correo electrónico fue enviado correctamente.';
}

En la configuración anterior, se utiliza SMTP para enviar el correo electrónico utilizando la cuenta de Gmail. Debes modificar los valores de Host, Username, Password y Port para utilizar los datos de tu servidor SMTP. Si utilizas un servidor SMTP diferente, es posible que necesites modificar la configuración para que funcione correctamente.

Paso 4: Abre los puertos en el firewall

Si estás utilizando un firewall, asegúrate de abrir los puertos necesarios para que PHPMailer pueda enviar correos electrónicos. Normalmente, el puerto 465/587 se utiliza para SMTP con SSL, pero puede variar según la configuración del servidor, en los servidores de RhinoHosting ambos puertos están habilitados.

Paso 5: Habilita las direcciones IP externas en el firewall (si es necesario)

Si estás utilizando un firewall y necesitas permitir que otras direcciones IP externas envíen correos electrónicos utilizando PHPMailer, debes agregar las direcciones IP a la lista blanca del firewall. Consulta la documentación de tu firewall para obtener instrucciones sobre cómo hacerlo.

Ejemplo:

Aquí te dejamos un ejemplo de configuración básica de PHPMailer en cPanel:

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

// Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);

try {
    //Server settings
    $mail->SMTPDebug = 2;                      // Enable verbose debug output
    $mail->isSMTP();                                            // Send using SMTP
    $mail->Host       = 'smtp.dominio.com';                    // Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = 'your@dominio.com';                     // SMTP username
    $mail->Password   = 'your-email-password';                               // SMTP password
    $mail->SMTPSecure = 'tls';         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
    $mail->Port       = 587;                                    // TCP port to connect to

    //Recipients
    $mail->setFrom('your@dominio.com', 'Your Name');
    $mail->addAddress('recipient@example.com', 'Recipient Name');     // Add a recipient

    // Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Test Email from PHPMailer';
    $mail->Body    = '<h1>Hello, World!</h1>';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

En este ejemplo, la configuración se realiza dentro del bloque try utilizando las propiedades de la instancia de la clase PHPMailer.

En la sección Server settings se configuran las opciones de conexión al servidor SMTP, tales como el nombre de host, el puerto, el protocolo de cifrado, el nombre de usuario y la contraseña. Es importante que estos valores sean los correctos según el servidor SMTP que estés utilizando.

En la sección Recipients se especifican los destinatarios del correo electrónico. En este caso, se utiliza el método setFrom para establecer el remitente del correo y el método addAddress para agregar un destinatario.

En la sección Content, se establece el contenido del correo, en este caso se utiliza el método isHTML para indicar que el contenido es en formato HTML y el método Body para establecer el cuerpo del mensaje.

Finalmente, en la sección try-catch, se intenta enviar el correo utilizando el método send y se manejan las excepciones en caso de que ocurra algún error en el proceso.

Conclusión

En este artículo, te hemos mostrado cómo configurar PHPMailer en cPanel para que puedas enviar correos electrónicos desde tu sitio, si tienes un alojamiento web con RhinoHosting y necesitas habilitar o comprobar puertos o ayuda para dar permiso a direcciones IP, puedes abrir un ticket de Soporte 24/7 para ponerte en contacto con nuestro equipo de ayuda.

Send this to a friend