Подтвердить что ты не робот

PHPMailer - SMTP ERROR: команда паролей не удалась при отправке почты с моего сервера

Я использовал концепцию phpmailer() для отправки почты пользователям с моего общего сервера с использованием php script, но я не могу отправить, хотя все верно в моем script в соответствии с кодом phpmailer.

Мой код:

  $message = " This is testing message from my server";

  $mail = new PHPMailer(); // create a new object
  $mail->IsSMTP(); // enable SMTP
  $mail->Host = "smtp.gmail.com";
  $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
  $mail->SMTPAuth = true; // authentication enabled
  $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
  $mail->Port = 465; // or 587
  $mail->IsHTML(true);
  $mail->Username = "[email protected]"; // My gmail username
  $mail->Password = "************"; // My Gmail Password
  $mail->SetFrom("[email protected]");
  $mail->Subject = "Test Mail from my Server";
  $mail->Body = $message;
  $mail->AddAddress($email);
   if($mail->Send())
      {
    print json_encode("SUCCESS");
}
else
{
    echo "Mailer Error: " . $mail->ErrorInfo;

}

Примечание: Я использовал "GMail" в качестве моего SMTP-сервера, а SMTPSecure - "ssl", а порт "465", а имя пользователя и пароль - это мое имя пользователя и пароль GMail.

Я использовал общий сервер VPS, и я сохранил свой php script на этом сервере.

Я думаю, что нет проблем в моем php script, и я не знаю, почему он не работает.

Я получил ОШИБКУ, как это.

  2014-02-21 12:30:11   CLIENT -> SERVER: EHLO jkcorporates.com
  2014-02-21 12:30:11   CLIENT -> SERVER: AUTH LOGIN
  2014-02-21 12:30:11   CLIENT -> SERVER: bW9vcnRoaS5tcmsxMEBnbWFpbC5jb20=
  2014-02-21 12:30:11   CLIENT -> SERVER: OTk0MTI0MTE0MA==
  2014-02-21 12:30:11   SMTP ERROR: Password command failed: 534-5.7.14 
  534-5.7.14 i-_eumA> Please log in via your web browser and then try again.
  534 5.7.14 54 k76sm17979938yho.18 - gsmtp
  2014-02-21 12:30:11   CLIENT -> SERVER: QUIT
  " The ERROR is  "  SMTP connect() failed.

Пожалуйста, дайте некоторое решение для этого.
Спасибо в Advance.

Помните: Я использую имя общего сервера "VPS.mydomain.com", и я хочу использовать GMail в качестве моего SMTP-сервера для отправки почты пользователям.

4b9b3361

Ответ 1

Немного поздно, но, возможно, кто-то найдет это полезным.

Ссылки, которые исправляют проблему (вы должны войти в учетную запись google):

https://security.google.com/settings/security/activity?hl=en&pli=1

https://www.google.com/settings/u/1/security/lesssecureapps

https://accounts.google.com/b/0/DisplayUnlockCaptcha

Некоторое объяснение того, что происходит:

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

Чтобы решить, мне пришлось: (первый раз)

  • войти в мою учетную запись через веб-сайт
  • просмотреть последние попытки использовать учетную запись и принять подозрительный доступ: ЭТА ССЫЛКА
  • отключить функцию блокировки подозрительных приложений/технологий: ЭТА ССЫЛКА

Это сработало впервые, но через несколько часов, вероятно, потому, что я много тестировал проблему, и она не была исправлена ​​с использованием вышеупомянутого метода. Кроме того, мне пришлось очистить капчу (забавная картинка, в которой вам предлагается переписать слово или предложение при входе в любую учетную запись в настоящее время слишком много раз):

  • после входа в мою учетную запись я пошел ЗДЕСЬ
  • Нажмите кнопку continue

Надеюсь, это поможет.

Ответ 2

Используйте это:

https://www.google.com/settings/u/1/security/lesssecureapps
https://accounts.google.com/b/0/DisplayUnlockCaptcha
https://security.google.com/settings/security/activity?hl=en&pli=1

эта ссылка разрешает доступ к учетной записи google

ОБНОВЛЕНИЕ 19-05-2017:

Эти URL-адреса, которые вы должны посетить с IP-адреса, который будет отправлять по электронной почте

Ответ 3

Как уже было предложено другими, вы можете включить "менее безопасные" приложения или просто переключиться с ssl на tls:

$mailer->Host = 'tls://smtp.gmail.com';
$mailer->SMTPAuth = true;
$mailer->Username = "[email protected]";
$mailer->Password = "***";
$mailer->SMTPSecure = 'tls';
$mailer->Port = 587;

При использовании tls нет необходимости предоставлять доступ для менее защищенных приложений, просто убедитесь, что включен IMAP.

Ответ 4

Устранена проблема - PHPMailer - SMTP ERROR: команда паролей не удалась при отправке почты с моего сервера

    require_once('class.phpmailer.php');
    include("class.smtp.php"); 
    $nameField = $_POST['name'];
    $emailField = $_POST['email'];
    $messageField = $_POST['message'];
    $phoneField = $_POST['contactno'];
    $cityField = $_POST['city'];

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP

$body .= $nameField;

try {
     //$mail->Host       = "mail.gmail.com"; // SMTP server
      $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
      $mail->SMTPAuth   = true;                  // enable SMTP authentication
      $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
      $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
      $mail->Port       = 465;   // set the SMTP port for the GMAIL server
      $mail->SMTPKeepAlive = true;
      $mail->Mailer = "smtp";
      $mail->Username   = "[email protected]";  // GMAIL username
      $mail->Password   = "********";            // GMAIL password
      $mail->AddAddress('[email protected]', 'abc');
      $mail->SetFrom('[email protected]', 'def');
      $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
      $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
      $mail->MsgHTML($body);
      $mail->Send();
      echo "Message Sent OK</p>\n";
      header("location: ../test.html");
} catch (phpmailerException $e) {
      echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
      echo $e->getMessage(); //Boring error messages from anything else!
}

Важно:

Перейдите в настройку Google и включите приложения "менее безопасные". Это будет работать. Он работал у меня.

Ответ 5

Я сталкиваюсь с той же проблемой и думаю, что знаю, почему это происходит.

Учетная запись gmail, которую я использую, обычно используется в Индии, а используемый мной веб-сервер находится в Нидерландах.

Google уведомляет о том, что была попытка входа в систему из необычного местоположения и требуется войти в нее с помощью веб-браузера.

Кроме того, мне пришлось принять подозрительный доступ к учетной записи gmail с помощью https://security.google.com/settings/security/activity

Но в конце концов моя проблема еще не решена, потому что мне нужно войти в gmail из местоположения в Нидерландах.

Надеюсь, это поможет вам немного! (извините, я не читаю ответы по электронной почте на этот адрес электронной почты)

Ответ 6

Если вы пользователь G Suit, его можно решить администратором

  • Перейдите в панель администратора
  • Введите верхнюю строку поиска " Безопасность" (выберите значок "Безопасность с помощью экрана" )
  • Откройте Основные настройки
  • Перейти в раздел Менее безопасные приложения
  • Нажмите: перейдите к настройкам для менее безопасных приложений →

И теперь выберите одну из кнопок Radio a) Отключить доступ к менее безопасным приложениям для всех пользователей (рекомендуется) b) Разрешить пользователям управлять своим доступом к менее безопасным приложениям c) Обеспечить доступ к менее безопасным приложениям для всех пользователей (не рекомендуется)

Обычно он не работает из-за а)! И начнет работать сразу с опцией c). b) - опция должна иметь больше конфигурации для каждого пользователя в GSuit

Надеюсь, что это поможет

Ответ 7

Эта ошибка связана с дополнительными функциями безопасности gmail.

Как только эта ошибка будет сгенерирована... Пожалуйста, войдите в свою учетную запись gmail.., вы можете найти предупреждение безопасности от GOOGLE. Следуйте по почте... проверьте на клик для менее безопасного варианта. Затем повторите попытку phpmailer..

Ответ 8

Для тех, кто все еще не может заставить его работать, попробуйте следующее в дополнение к методу, предоставленному @CallMeBob.

php.ini

  • Перейдите в C:\xampp\php, отредактируйте файл php.ini с помощью блокнота.
  • Нажмите CTRL + F на клавиатуре, введите sendmail_path на панели поиска и дважды нажмите Найти далее.
  • Теперь вы должны быть в разделе [mail munction].

Удалите точку с запятой для этой строки: sendmail_path = "\" C:\xampp\sendmail\sendmail.exe\ "-t"
Добавьте точку с запятой для этой строки: sendmail_path = "C:\XAMPP\mailtodisk\mailtodisk.exe"

SendMail.ini

  • Перейдите в C:\xampp\sendmail, отредактируйте файл sendmail.ini с помощью блокнота
  • Измените следующее:


Примечание:
** smtp_port должен совпадать с вашими, написанными в вашем php-коде.
** Не забудьте изменить свое имя пользователя gmail и пароль gmail на любую учетную запись, которую вы используете.
**


Надеюсь это поможет!:)

Ответ 9

Ваша почта не будет отправлена онлайн, если вы не пройдете двухэтапную проверку своей учетной записи электронной почты и не воспользуетесь этим паролем.