2010-10-16 7 views
36

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

SMTP Error: Could not authenticate. Error: SMTP Error: Could not authenticate.

SMTP server error: 5.7.1 Username and Password not accepted. Learn more at 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 = "[email protected]"; 
    $Correo->Password = "gmailpassword"; 
    $Correo->SetFrom('[email protected]','De Yo'); 
    $Correo->FromName = "From"; 
    $Correo->AddAddress("[email protected]"); 
    $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, получив ту же ошибку.

+0

Это странно, поскольку ошибка явно указывает на ошибку имени пользователя и пароля, а не на проблему протокола. У вас нет специальных символов в вашем пароле, которые могут быть перенесены неправильно? –

ответ

17

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

$ Correo->Имя пользователя = "[email protected]";

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

+0

@Astantler вы можете отметить свой ответ, принятый с помощью символа галочки слева. –

3

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

7

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

+0

Вы можете просто использовать одинарные кавычки. Только одиночная цитата должна была бы сбежать. –

17

this is GMail issue

читать эту Справке 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

+0

может потребовать, чтобы вы подождали несколько минут, не работали мгновенно для меня ... нажмите дважды. – enko

4

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

+0

Надеюсь, вы все еще не используете этот пароль, потому что 1. Вы только что отправили его в Интернет в целом 2. Это совсем не безопасно. https://dl.dropboxusercontent.com/u/209/zxcvbn/test/index.html –

+0

для получения более подробных разъяснений это был всего лишь пример –

2

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

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

только до линии:

$send = $mail->Send(); 

или в другом смысле, перед вызовом Send() Function.

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

0

У меня была такая же проблема с аутентификацией. Исправлено создание двухэтапной аутентификации и создание специального пароля для устройства (сообщения об ошибках для блокировки устройства будут отображаться в настройках вашей учетной записи -> «Уведомления и предупреждения», если у вас проблема с тем же вопросом)

41

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

enter image description here

+2

Прошу прощения за поздний ответ. Для тех из вас, что вы не можете увидеть диалоговое окно «Разрешить менее безопасные приложения». 1. Перейдите в свою учетную запись 2. Подключенные приложения и сайты (вкладка входа и безопасности) 3. В разделе «Подключенные приложения и сайты» вы должны увидеть три вкладки. Но если вы видите только «Приложения, подключенные к вашей учетной записи» и «Сохраненные пароли». 4. На боковой панели нажмите «Войти в Google». Отключите двухэтапную аутентификацию. 5. Теперь вы увидите «Разрешить менее безопасные приложения». Поверните, если включено. – Beekeeper

+0

Я не видел раздел «Разрешить менее безопасные приложения», но Пароль приложения. Дополнительная информация https://support.google.com/accounts/answer/185833?hl=ru – guido

+0

Большое спасибо. Это сработало в моем случае. –

0

Это был вопрос SELinux. Я просто обновил приведенную ниже часть в файле/etc/selinux/config SELINUX=permissive (это было SELINUX = принудительное выполнение до). затем просто перезагрузите систему, указав reboot Теперь почта идет без всяких хлопот. Конфигурация

From Email Address : [[email protected]] 
From Name : [your domain name] 
SMTP Host : smtp.gmail.com 
Type of Encryption : SSL 
SMTP Port : 465 
SMTP Authentication : YES 
Username : [your mail id] 
Password : [your password] 
2

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

2

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

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

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

  1. Создать новый пароль для аккаунта Gmail вы хотите использовать
  2. Включить менее безопасные приложения в Google Security settings
  3. Используйте Display Unlock Captcha page, чтобы дать ваше приложение или веб-сайт разрешения на вход в Gmail. Нажмите Continue или следуйте инструкциям.
  4. Войдите в систему, используя приложение или веб-сайт. Параметры smtp, которые работают для меня: 1) SMTP Host: smtp.gmail.com 2) SMTP-порт: 587 3) Шифрование: TLS 4) Аутентификация: аутентификация SMTP 5) Имя пользователя: [email protected] 6) Пароль: examplesecret
+0

Вам не нужно включать пересылку, POP или IMAP в Gmail, чтобы заставить это работать. – Red

0

SMTP Ошибка: не удалось проверить подлинность у меня была такая же проблема. Следующие шаги по устранению неполадок помогли мне.

  • Я отключил двухфакторную аутентификацию в своей учетной записи gmail.
  • Я разрешил менее безопасные приложения для доступа к моей учетной записи gmail. Чтобы заставить его работать, мне пришлось перейти на myaccount.google.com ->Sign-in & security ->Apps with account access, и поверните Allow less secure apps до ON (в нижней части страницы).
  • На этом этапе, когда я попытался зарегистрировать пользователя, я получил бы ту же ошибку. Google отправил мне предупреждающее сообщение о том, что у кого-то мой пароль, и логин был заблокирован.
  • Gmail предоставит вам варианты. Вы либо нажимаете, была ли ваша деятельность вашей или нет. Выберите вариант, который был активен.
  • Повторите попытку регистрации. Теперь он должен работать.
Смежные вопросы