Error de autenticación SMTP usando PHPMailer

Error de autenticación SMTP usando PHPMailer

Estoy usando PHPMailer para enviar un formulario básico a una dirección de correo electrónico pero aparece el siguiente error:

Error SMTP: No se pudo autenticar. No se pudo enviar el mensaje. Error de correo: Error SMTP: No se pudo autenticar. Error del servidor SMTP: VXNlcm5hbWU6

Lo raro es que si intento enviarlo de nuevo, ¡FUNCIONA! Cada vez que envío el formulario después del primer error, funciona. Pero si lo dejo unos minutos y lo vuelvo a intentar, me sale el mismo error nuevamente.

El nombre de usuario y la contraseña tienen que ser correctos ya que a veces funciona bien. Incluso creé el siguiente script (muy básico) solo para probarlo y obtuve el mismo resultado.

<?php

require("phpmailer/class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();
$mail->Host = "smtp.host.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "password";

$mail->From = "[email protected]";
$mail->FromName = "From Name";
$mail->AddAddress("[email protected]");
$mail->AddReplyTo("[email protected]");

$mail->IsHTML(true);  

$mail->Subject = "Here is the subject";
$mail->Body    = "This is the HTML message body <b>in bold!</b>";
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";

if(!$mail->Send())
{
   echo "Message could not be sent. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}

echo "Message has been sent";

?>

No creo que esto sea relevante, pero acabo de cambiar mi hosting a un servidor compartido Linux. ¿Alguna idea de por qué sucede esto?

¡Gracias!

***ACTUALIZADO 06/02/2012
He estado haciendo algunas pruebas. Los resultados:

Probé el script en un servidor IIS y funcionó bien. El error parece ocurrir sólo en el servidor Linux.

Además, si uso el servidor de correo de Gmail, funciona bien tanto en IIS como en Linux.

¿Podría ser un problema con la configuración de mi servidor Linux?

***ACTUALIZACIÓN 2
Probé Swiftmail y funciona bien :-) así que me desharé de PHPMailer

Respuesta1

No estoy seguro de si el problema fue el servidor o PHPMailer, pero probé Swiftmail y funcionó bien. Normalmente me gusta saber POR QUÉ algo no funciona pero no encuentro el problema y el servicio técnico está tan perdido como yo. Así que de ahora en adelante me quedaré con Swiftmail para mis proyectos.

¡Gracias por la ayuda!

Respuesta2

Podrías intentar solicitar una conexión TLS como esta:

$mail->SMTPAuth   = true;
$mail->SMTPSecure = "tls";

esta pregunta/respuesta en SOtiene más información. Incluyendo la recomendación de utilizar la biblioteca php PEAR en lugar de phpmailer.

información relacionada