Ошибка аутентификации SMTP с использованием PHPMailer

Ошибка аутентификации SMTP с использованием PHPMailer

Я использую PHPMailer для отправки простой формы на адрес электронной почты, но получаю следующую ошибку:

Ошибка SMTP: Не удалось выполнить аутентификацию. Сообщение не может быть отправлено. Ошибка почтовой программы: Ошибка SMTP: Не удалось выполнить аутентификацию. Ошибка сервера SMTP: VXNlcm5hbWU6

Странно то, что если я попытаюсь отправить его снова, ЭТО РАБОТАЕТ! Каждый раз, когда я отправляю форму после этой первой ошибки, это срабатывает. Но если я оставлю это на несколько минут, а затем попробую снова, то снова получаю ту же ошибку.

Имя пользователя и пароль должны быть правильными, так как иногда это работает нормально. Я даже создал следующий (очень простой) скрипт, чтобы просто проверить его, и я получил тот же результат

<?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";

?>

Я не думаю, что это имеет значение, но я только что сменил хостинг на Linux shared server. Есть идеи, почему это происходит?

Спасибо!

***ОБНОВЛЕНО 02/06/2012
Я провел несколько тестов. Результаты:

Я протестировал скрипт на сервере IIS, и он работал нормально. Ошибка, похоже, происходит только на сервере Linux.

Кроме того, если я использую почтовый сервер Gmail, он отлично работает как в IIS, так и в Linux.

Может ли это быть проблема с конфигурацией моего Linux-сервера?

***ОБНОВЛЕНИЕ 2
Я попробовал swiftmail, и он отлично работает :-) поэтому я отказываюсь от PHPMailer

решение1

Я не уверен, была ли проблема в сервере или PHPMailer, но я попробовал Swiftmail, и он работал нормально. Обычно я хотел бы знать, ПОЧЕМУ что-то не работает, но я не могу найти проблему, а техническая служба так же потеряна, как и я. Поэтому с этого момента я просто буду использовать Swiftmail для своих проектов.

Спасибо за помощь!

решение2

Вы можете попробовать запросить TLS-соединение следующим образом:

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

этот вопрос/ответ на SOсодержит больше информации. Включая рекомендацию использовать библиотеку php PEAR вместо phpmailer.

Связанный контент