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.

El correo electrónico no se está enviando desde el servidor de cpanel a los correos electrónicos de dominio personalizado utilizando PHPMailer.

Estoy utilizando las credenciales SMTP de mi correo electrónico de Cpanel para enviar un correo electrónico utilizando la biblioteca PHPMailer. El correo electrónico se está enviando bien al dominio de Gmail, pero cuando uso cualquier otro dominio personalizado, como otros correos electrónicos de Cpanel, el correo electrónico no se está enviando a ese correo electrónico.

A continuación se presentan mis códigos. Este código funciona bien cuando uso cualquier correo electrónico de dominio de Gmail, pero en el correo electrónico de dominio personalizado, se envía (sin ningún error) pero el correo no va a ese correo electrónico.

<?php
require_once dirname(DIR, 2) . '/config/config.php';

require_once dirname(DIR, 2) . '/vendor/phpmailer/phpmailer/src/Exception.php';
require_once dirname(DIR, 2) . '/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require_once dirname(DIR, 2) . '/vendor/phpmailer/phpmailer/src/SMTP.php';

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

class Mailing {
  // Send Mail PHPMailer
  public function sendMail($to, $replyTo, $subject, $body, $output = null, $filename = null) {
    require_once dirname(DIR, 2) . '/vendor/autoload.php';

$mail = new PHPMailer(true);
try {
  if ($_SERVER['HTTP_HOST'] == 'localhost') {
    $mail->isSMTP();
  } else {
    $mail->isMail();
  }
  $mail->Host = SMTP_HOST; // my cpanel mail smtp host
  $mail->SMTPAuth = true;
  $mail->Username = SMTP_USER; // my cpanel smtp user
  $mail->Password = SMTP_PASS; // my cpanel smtp password
  $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
  $mail->Port = SMTP_PORT; // 465
  $mail->setFrom(SMTP_USER, APP_NAME);
  $mail->addAddress($to);
  $mail->addReplyTo($replyTo);

  if ($output != null) {
    $mail->AddStringAttachment($output, $filename, 'base64', 'application/pdf');
  }

  $mail->isHTML(true);
  $mail->Subject = $subject;
  $mail->Body = $body;

  $result = $mail->send();

  if ($result) {
    return true;
  } else {
    return $mail->ErrorInfo;
  }
} catch (Exception $e) {
  return $e->getMessage();
}
}
}
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código proporcionado puede estar relacionado con la configuración del servidor de correo electrónico del dominio personalizado. Para solucionar este problema, puede probar lo siguiente:

    1. Verifique si el servidor de correo electrónico del dominio personalizado está configurado para permitir conexiones SMTP desde su cuenta de correo electrónico de Cpanel. Puede ponerse en contacto con el proveedor de servicios de correo electrónico o verificar la configuración SMTP en Cpanel.
    2. Intente usar un puerto SMTP diferente (por ejemplo, 587) y un método de cifrado diferente (por ejemplo, TLS) para el servidor de correo electrónico del dominio personalizado. Puede modificar el código según sea necesario actualizando la configuración SMTP.

    3. Verifique si la dirección de correo electrónico del dominio personalizado es correcta y la casilla de correo no está llena o inactiva.

    4. Habilitar la depuración en PHPMailer para obtener más información sobre el proceso de envío de correo electrónico utilizando la siguiente línea antes de la línea $result = $mail->send();:

    php
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;

    Esto mostrará las respuestas del servidor SMTP y cualquier error que pueda ocurrir.

    1. Verifique los archivos de registro del servidor de correo electrónico para ver si hay errores o mensajes relacionados con el proceso de envío de correo electrónico.

    Al solucionar los problemas anteriores, debería poder identificar la causa del problema y resolverlo.

Comments are closed.