Я использую 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
источник
Ответы:
Я не уверен, была ли проблема в сервере или PHPMailer, но я попробовал Swiftmail, и он работал нормально. Мне обычно нравится знать, ПОЧЕМУ что-то не работает, но я не могу найти проблему, и техническая служба теряется так же, как и я. Так что теперь я собираюсь придерживаться Swiftmail для моих проектов.
Спасибо за помощь!
источник
Вы можете попробовать запросить соединение TLS следующим образом:
этот вопрос / ответ на ТА имеет больше информации. Включая рекомендацию использовать библиотеку php PEAR вместо phpmailer.
источник