es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Verificación de Email usando php y mysql: Connect () SMTP falló para webmail.

Este es mi código PHP para enviar un enlace de verificación de correo electrónico a la cuenta de usuario.

<?php
// comienza el código php mailer
    $mail = new PHPMailer(true);
    $mail->IsSMTP(); // indico que la clase use SMTP

    $mail->SMTPDebug = 0;                     
    $mail->SMTPAuth = true;                  
    $mail->SMTPSecure = "ssl";               
    $mail->Host = "smtp.domain.in";     
    $mail->Port = 25;                   

    $mail->Username = 'admin@domain.in';
    $mail->Password = 'password';

    $mail->SetFrom('admin@domain.in', 'Admin');
    $mail->AddAddress($email);

    $mail->Subject = trim("Email Verifcation");
    $mail->MsgHTML($message);

    try {
      $mail->send();
      $msg = "Se ha enviado un correo electrónico para verificar.";
      $msgType = "success";
    } catch (Exception $ex) {
      $msg = $ex->getMessage();
      $msgType = "warning";
    }

?>

Este código funciona para una cuenta de Gmail como xyz@gmail.com. Pero no funciona cuando uso una cuenta webmail como admin@domain.in.

Obtengo el error SMTP connect() failed.

¿Alguien puede decirme dónde estoy cometiendo un error en mi código?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una posible solución para el error ‘SMTP connect() failed’ es verificar si la configuración SMTP de la cuenta de correo web es correcta. El código actual está configurado para usar cifrado SSL ($mail->SMTPSecure = "ssl";) y el puerto 25 ($mail->Port = 25;). Sin embargo, esto puede no ser compatible con el proveedor de servicios de correo web.

    Es posible que deba consultar la documentación o el equipo de soporte del proveedor de servicios de correo web para verificar la configuración SMTP correcta. Algunas opciones comunes son:

    • Cifrado SSL o TLS
    • Números de puerto (por ejemplo, 465, 587)
    • Método de autenticación (por ejemplo, plain, login, CRAM-MD5)
    • Nombre de usuario y contraseña para la autenticación SMTP

    Una vez que tenga la configuración SMTP correcta, puede actualizar el código PHPMailer de la siguiente manera:

    $mail->IsSMTP(); 
    $mail->SMTPDebug = 0;
    $mail->SMTPAuth = true;                  
    $mail->SMTPSecure = "tls"; // actualizar al tipo de cifrado correcto
    $mail->Host = "mail.domain.in"; // actualizar al servidor SMTP correcto
    $mail->Port = 465; // actualizar al número de puerto correcto 
    
    $mail->Username = 'admin@domain.in';
    $mail->Password = 'password'; // actualizar a la contraseña SMTP correcta
    
    $mail->SetFrom('admin@domain.in', 'Admin');
    $mail->AddAddress($email);
    
    $mail->Subject = trim("Verificación de correo electrónico");
    $mail->MsgHTML($message);
    

    Tenga en cuenta que el código actualizado utiliza cifrado TLS ($mail->SMTPSecure = "tls";) y el puerto 465 ($mail->Port = 465;), que son configuraciones comunes para algunos proveedores de servicios de correo web. El servidor SMTP y las credenciales de autenticación también se actualizan a los valores correctos.

Comments are closed.