Pregunta "Contraseña no aceptada desde el servidor: 535 datos de autenticación incorrectos" cuando se envía con GMail y phpMailer


Tengo el mismo script php ejecutándose en localhost: mi PC con XAMPP y en un servidor alojado. Funciona desde mi PC, pero no desde el servidor alojado.

Cuando lo envío desde el servidor alojado, obtengo el siguiente resultado:

SMTP -> ERROR: Password not accepted from server: 535 Incorrect authentication data  
SMTP -> ERROR: RCPT not accepted from server: 550-Please turn on SMTP Authentication in your mail client, or login to the 550-IMAP/POP3 server before sending your message. dev.camppage.com 550-(patchvalues.com) [205.234.141.238]:50958 is not permitted to relay through 550 this server without authentication.  
SMTP Error: The following recipients failed: jdorner4@gmail.com FAILED

Sospecho que hay una configuración que debe cambiarse en el servidor, pero no sé cuál. ¡Cualquier consejo sería muy apreciado!

Aquí está el código:

function send_gmail ($recipients, $subject, $message, $attachment_filenames = array()) 
{
  global $email_address, $email_password, $email_name;
  require_once ($_SERVER['DOCUMENT_ROOT']. '/php/PHPMailer/class.phpmailer.php');   

  $body  = $message;
  $body  = str_replace("\\", '', $body);
  $mail = new PHPMailer();
  $mail->CharSet = "UTF-8";
  $mail->IsSMTP();
  $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing) 0 - none; 1 - errors & messages; 2 - messages only
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
  $mail->Port       = 465;                   // set the SMTP port
  $mail->Username   = $email_address;  // GMAIL username
  $mail->Password   = $email_password; // GMAIL password
  $mail->SetFrom($email_address);
  $mail->FromName   = $email_name;
  $mail->AddReplyTo($email_address,$email_name);
  $mail->Subject    = $subject;
  $mail->MsgHTML($body);
  $mail->IsHTML(true); // send as HTML

  if (isset ($recipients[0]))
  {
    foreach ($recipients AS $to)
    {
        $to_pieces = explode (",", $to, 2);
        $to_email = trim ($to_pieces[0]);
        if (isset ($to_pieces[1]))
            $to_name = trim ($to_pieces[1]);
        else
            $to_name = " ";
        $mail->AddAddress($to_email, $to_name);
    }
    $mail->IsHTML(true); // send as HTML

    if ($mail->Send()){
        return TRUE;
    } else {
        return FALSE;
    }
} 
else 
{
    return FALSE;
}
}

TIA


20
2018-01-12 19:47


origen


Respuestas:


La solución fue habilitar el SMTP saliente desde la configuración del servidor.

En los servidores que ejecutan WHM de cPanel, esto se encuentra en la sección "Configuración de ajustes" de WHM.

La opción es habilitar / deshabilitar - elija deshabilitar.

Advertencia: Hacer este cambio redireccionará las conexiones salientes de SMTP que permiten a las cuentas establecer conexiones directas que pueden aumentar las probabilidades de que su servidor quede en la lista negra.


44
2018-01-21 19:17



esto está relacionado con WHM / cPanel , puede hacer lo mismo que en la respuesta anterior o desde el shell al escribir esto

/scripts/smtpmailgidonly off

deberías obtener

"SMTP Mail protection has been disabled.  All users may make outbound smtp connections."

más leyendo aquí https://forums.cpanel.net/threads/cant-enable-smtp-restrictions.360971/


3
2018-06-15 09:49