«Ошибка SMTP: не удалось аутентифицироваться» в PHPMailer - PullRequest
47 голосов
/ 16 октября 2010

Я использую PHPMailer в простом скрипте для отправки электронной почты через Gmail и получаю «Неизвестную ошибку» (по крайней мере, для меня!):

Ошибка SMTP: не удалосьаутентификации.Ошибка: ошибка SMTP: не удалось аутентифицироваться.

Ошибка сервера SMTP: 5.7.1 Имя пользователя и пароль не приняты.Узнайте больше на 535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 p38sm2467302ybk.16

Я читал о настройке OpenSSL для соединений SSL / TLS и сделал это.Apache и PHP настроены должным образом (с расширением OpenSSL, работающим на PHP, и mod_ssl, работающим на Apache 2.2.16).

Это сценарий PHP:

 <?php
  require_once ("PHPMailer\class.phpmailer.php");
  $Correo = new PHPMailer();
  $Correo->IsSMTP();
  $Correo->SMTPAuth = true;
  $Correo->SMTPSecure = "tls";
  $Correo->Host = "smtp.gmail.com";
  $Correo->Port = 587;
  $Correo->UserName = "foo@gmail.com";
  $Correo->Password = "gmailpassword";
  $Correo->SetFrom('foo@gmail.com','De Yo');
  $Correo->FromName = "From";
  $Correo->AddAddress("bar@hotmail.com");
  $Correo->Subject = "Prueba con PHPMailer";
  $Correo->Body = "<H3>Bienvenido! Esto Funciona!</H3>";
  $Correo->IsHTML (true);
  if (!$Correo->Send())
  {
    echo "Error: $Correo->ErrorInfo";
  }
  else
  {
    echo "Message Sent!";
  }
?>

Имя пользователя и пароль:ОК, и я попробовал в Thunderbird, без проблем.Я также использовал SSL-аутентификацию и порт 465, получая ту же ошибку.

Ответы [ 14 ]

61 голосов
/ 04 сентября 2015

Я столкнулся с этой проблемой. Чтобы это работало, мне нужно было зайти на myaccount.google.com -> «Вход и безопасность» -> «Приложения с доступом к аккаунту» и включить «Разрешить менее безопасные приложения» на «ВКЛ». "(в нижней части страницы).

enter image description here

24 голосов
/ 16 октября 2010

Попробуйте вместо этого:

$ Correo -> Имя пользователя = "foo@gmail.com";

Я проверил его и он отлично работает без других изменений

21 голосов
/ 30 апреля 2013

это проблема GMail

прочитайте эту Справку Google (https://support.google.com/mail/answer/14257?p=client_login&rd=1)

  1. Откройте веб-браузер и войдите в Gmail по адресу http://mail.google.com/mail. Если вы видите запрос на подтверждение слова, введите буквы на искаженном изображении и завершите вход.
  2. Закройте браузер и попробуйте снова получить доступ к сообщениям в почтовом клиенте.
  3. Если у вас все еще есть проблемы, посетите http://www.google.com/accounts/DisplayUnlockCaptcha и войдите в систему, используя свое имя пользователя и пароль Gmail. При необходимости введите буквы на искаженном рисунке.
  4. Нажмите Продолжить.
  5. Перезапустите почтовый клиент и попробуйте снова получить доступ к сообщениям в почтовом клиенте.

SMTP Error: Could not authenticate

Gmail issue

8 голосов
/ 01 августа 2012

Я получил ту же ошибку и в mycase это был пароль. Мой пароль имеет специальные символы для, и если вы введете пароль без экранирования специальных символов, ошибка будет отображаться. E.g $mail->Password = " por$ch3"; действителен, но не будет работать с кодом выше. Решение должно быть следующим: $mail->Password = "por\$ch3"; Обратите внимание на обратную косую черту, которую я поместил перед символом доллара в моем пароле. Это должно работать, если у вас есть пароль с использованием специальных символов

3 голосов
/ 11 июня 2013

Для меня в поле пароля были специальные символы, и я поставил его как $ mail-> Password = "por $ ch3", которые работают для сервера gmail smpt, но не для других; поэтому я просто изменил двойные кавычки на одинарные, и это работает для меня. $ mail-> Password = 'por $ ch3';

3 голосов
/ 05 декабря 2011

Я получил эту ошибку из-за процентных знаков в пароле.

2 голосов
/ 20 июля 2017

[решено]. Я столкнулся с той же ошибкой при настройке плагина WP-Mail-SMTP в Wordpress.

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

Есть список шагов, которые можно предпринять, чтобы это исправить.

  1. Создайте новый пароль для учетной записи Gmail, которую вы хотите использовать
  2. Включить менее безопасные приложения в Настройки безопасности Google
  3. Используйте страницу Display Unlock Captcha , чтобы разрешить приложению или веб-сайту входить в Gmail. Нажмите Continue или следуйте инструкциям.
  4. Войдите, используя приложение или веб-сайт. Настройки smtp, которые у меня работают: 1) Узел SMTP: smtp.gmail.com 2) Порт SMTP: 587 3) Шифрование: TLS 4) Аутентификация: SMTP-аутентификация 5) Имя пользователя: example@gmail.com 6) Пароль : examplesecret
2 голосов
/ 25 мая 2016

У меня возникла та же проблема, и все советы, включая настройку Gmail (например, менее безопасный доступ к приложениям), были безуспешными. Но, наконец, когда я сменил пароль на что-то другое, по какой-то причине это сработало! К вашему сведению, первоначальный пароль не содержал никаких специальных символов.

2 голосов
/ 11 июня 2014

Если вы все еще сталкиваетесь с ошибкой при отправке электронной почты, с тем же сообщением об ошибке. Попробуйте это:

$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';

перед строкой:

$send = $mail->Send();

или в другом смысле, перед вызовом функции Send ().

Проверено и работает.

0 голосов
/ 20 мая 2018

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

a. Go to the URL of `https://myaccount.google.com/` and click `Sing-in and security`

b. Click on the app password. 

enter image description here

You will reach a page like this,

enter image description here

c. Create name of your app and generate a password for the respective app.  

d. Use that password acquired here inside the app.

Это должно решить проблему.

...