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

2 ответа2

0

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

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

-1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .