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

1

Я использую 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 = "mail@mail.com";
$mail->Password = "password";

$mail->From = "mail@mail.com";
$mail->FromName = "From Name";
$mail->AddAddress("mail@mail.com");
$mail->AddReplyTo("mail@mail.com");

$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. Есть идеи, почему это происходит?

Спасибо!

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

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

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

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

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

Javier
источник
было бы полезно узнать настройки сервера, на котором расположен phpmailer. Такие как установленные модули OS и PHP, а также версия PHP
Frostalf

Ответы:

0

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

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

Javier
источник
используйте Wireshark посмотреть, что это показывает
barlop
-1

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

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

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

Jeremy W
источник
Привет, Джереми. Я протестировал опцию tls и получил следующую ошибку: Не удалось загрузить языковую строку: tls Сообщение не может быть отправлено. Ошибка почтовой программы: не удалось загрузить языковую строку: tls Тогда, если я попробую сразу после этого, это сработает! Я попробую Грушу. Спасибо!
Javier
хорошо отлично Вы обновили свой ответ, чтобы указать, что вы пробовали swiftmail. Вы должны опубликовать это как ответ, а затем принять его (это нормально, чтобы ответить на свой вопрос ... на самом деле, это рекомендуется здесь)
Jeremy W