Erro de autenticação SMTP usando PHPMailer

Erro de autenticação SMTP usando PHPMailer

Estou usando o PHPMailer para enviar um formulário básico para um endereço de e-mail, mas recebo o seguinte erro:

Erro SMTP: não foi possível autenticar. Não foi possível enviar a mensagem. Erro do Mailer: Erro SMTP: Não foi possível autenticar. Erro do servidor SMTP: VXNlcm5hbWU6

O estranho é que se eu tentar enviar de novo, FUNCIONA! Toda vez que envio o formulário após o primeiro erro, ele funciona. Mas se eu deixar por alguns minutos e tentar novamente, recebo o mesmo erro novamente.

O nome de usuário e a senha devem estar corretos, pois às vezes funciona bem. Até criei o seguinte script (bem básico) só para testar e obtive o mesmo 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";

?>

Não acho que isso seja relevante, mas acabei de mudar minha hospedagem para um servidor Linux compartilhado. Alguma ideia de por que isso está acontecendo?

Obrigado!

***ATUALIZADO EM 06/02/2012
Estou fazendo alguns testes. Os resultados:

Testei o script em um servidor IIS e funcionou bem. O erro parece acontecer apenas no servidor Linux.

Além disso, se eu usar o servidor de e-mail do Gmail, ele funcionará bem no IIS e no Linux.

Poderia ser um problema com a configuração do meu servidor Linux??

***ATUALIZAÇÃO 2
Tentei o swiftmail e funciona bem :-) então estou descartando o PHPMailer

Responder1

Não tenho certeza se o problema foi no servidor ou no PHPMailer, mas tentei o Swiftmail e funcionou bem. Normalmente gosto de saber POR QUE algo não está funcionando, mas não consigo encontrar o problema e o serviço técnico fica tão perdido quanto eu. Então, de agora em diante, vou me limitar ao Swiftmail para meus projetos.

Obrigado pela ajuda!

Responder2

Você pode tentar solicitar uma conexão TLS como esta:

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

esta pergunta/resposta no SOtem mais informações. Incluindo a recomendação de usar a biblioteca php PEAR em vez do phpmailer.

informação relacionada