Cómo Configurar PHPMailer con Hostalia

Estoy intentando configurar un formulario web mediante la librería de PHPMailer en un hosting de Hostalia.

Con un fichero como este

¿
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require './../js/PHPMailer-master/src/Exception.php';
require './../js/PHPMailer-master/src/SMTP.php';
require './../js/PHPMailer-master/src/PHPMailer.php';
$datos = array("Nombre" => $_POST["nombre"], "Apellidos" => $_POST["apellidos"], "E-amil" => $_POST["mail"],"Telefono"=> $_POST["telefono"], "Página Web" => $_POST["web"], "Tipo de persona" => $_POST["tipo_persona"], "Descripción" => $_POST["descripcion"]);
$contrasenia = file('./variables/pass.txt');
//Ejemplo simple de enviar un correo
$mail = new PHPMailer(true);
try {
    //Server settings
    $mail->SMTPDebug = 2;                                       // Enable verbose debug output
    $mail->isSMTP();                                            // Set mailer to use SMTP
    $mail->Host       = 'smtp.reimar.es';                       // Specify main and backup SMTP servers
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = '[email protected]';                       // SMTP username
    $mail->Password   = $contrasenia[0];                        // SMTP password
    $mail->SMTPSecure = 'ssl';                                  // Enable TLS encryption, `ssl` also accepted
    $mail->Port       = 587;                                    // TCP port to connect to
    $mail->CharSet    ='UTF-8';                                 // Codificación del email
    //Recipients
    $mail->setFrom('[email protected]', 'Formulario Web');
        $mail->addAddress($_POST["mail"], $_POST["nombre"]);     // Add a recipient
// Content
    // To load the French version
    $mail->setLanguage('es', './../js/PHPMailer-master/idioma/');
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Formulario desde la web';
    //$mail->Body    = 'Mensaje de prueba <b>in bold!</b>';
    $mail->Body    = $var_html;
    //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
    $mail->send();
    echo 'Mensaje enviado';
} catch (Exception $e) {
    echo "Mensaje no se ha podido enviar. Tipo de error: {$mail->ErrorInfo}";
}
?>

He probado de cambiar la variable SMTPSecure = 'tls' y también de cambiar la variable Port = '25', pero siempre me dice lo siguiente:

Error SMTP: Imposible conectar al servidor SMTP.
2019-04-03 15:45:26 CLIENT -> SERVER: QUIT
2019-04-03 15:45:26 SERVER -> CLIENT: 
2019-04-03 15:45:26 SMTP ERROR: QUIT command failed: 
Error SMTP: Imposible conectar al servidor SMTP.
Mensaje no se ha podido enviar. Tipo de error: Error SMTP: Imposible conectar al servidor SMTP.

¿Alguien tiene un dominio en Hostalia y se ha encontrado en esta situación?

Respuesta
1

Después de varios correos con el soporte técnico de Hostalia he conseguido que funciona con la siguiente configuración.

Al parecer el problema principal que tenía es que le ponía mi configuración de dominio en el host 'smtp. Reimar.com', pero no lo cogía bien (no sé el motivo) y introduciendo el host de 'smtp. Dominioabsoluto.net' con su correspondiente configuración de puerto 587 en este caso sí funciona.

¿
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require './../js/PHPMailer-master/src/Exception.php';
require './../js/PHPMailer-master/src/SMTP.php';
require './../js/PHPMailer-master/src/PHPMailer.php';
$var_html="";
//Ejemplo simple de enviar un correo
$mail = new PHPMailer(true);                              // Instantiation and passing `true` enables exceptions
try {
    //Server settings
    $mail->SMTPDebug = 4;                                 // Enable verbose debug output
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host      = 'smtp.dominioabsoluto.net';        // No modificar
    $mail->SMTPAuth  = true;                              // Enable SMTP authentication
    $mail->Username  = '[email protected]';                  // SMTP username
    $mail->Password  = 'tucontraseña';                    // SMTP password
    $mail->SMTPSecure= '';                                // Enable TLS encryption, options: '', 'tls', 'ssl'
    $mail->Port      = 587;                               // TCP port to connect to
    $mail->CharSet   ='UTF-8';                            // Codificación del email
    //Recipients
    $mail->setFrom('[email protected]', 'Formulario Web');   
    $mail->addAddress($_POST["mail"], $_POST["nombre"]);  // Add a recipient
    // Attachments  
    if($_FILES["fichero"]['tmp_name'] != "" || $_FILES["fichero"]['size'] > 0 ){
        $mail->addAttachment($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name']); // Add attachments
    }
    // Content
    $mail->isHTML(true);                                           // Set email format to HTML
    $mail->setLanguage('es', './../js/PHPMailer-master/idioma/');  // Configuración el idioma para el log
    $mail->Subject = 'Formulario desde la web';
    $mail->Body    = $var_html;
    $mail->send();
    echo 'Mensaje enviado';
} catch (Exception $e) {
    echo "Mensaje no se ha podido enviar. Tipo de error: {$mail->ErrorInfo}";
}
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas