после нескольких дней работы моего PHPMailer с gmail мне нужно найти здесь помощь. Я прочитал почти все, что мог найти здесь или в Google, но ни одна из идей не помогла до сих пор.
я использую
* Windows 7 Home Basic
* Wampserver 2.2 с версией PHP. Версия PHP 5.4.3
все необходимые расширения настроены как e. г. php_opensll
* PHPMailer 5.2.9
Это скрипт, который я использую:
<?php
//require 'PHPMailerAutoload.php'; // <<== I have tried this also - no sucess
require 'class-phpmailer.php';
require "class-smtp.php"; //"PHPMailerAutoload.php";
// $mail->PluginDir //WB, 30 Nov 2014:omited if all files from phpmailer are in the same folder
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->Mailer = 'smtp';
$mail->SMTPAuth = true;
// I have tried both - TLS and SSL - with the required ports ==>> both are not working
$mail->Port = 465;
$mail->SMTPSecure = 'ssl';
// or try these settings (worked on XAMPP and WAMP):
//$mail->Port = 587;
//$mail->SMTPSecure = 'tls';
$mail->Username = "wie****@gmail.com"; //my password ==>> works if I make a login oline to my account
$mail->Password = "*************"; //my password ==>> works if I make a login oline to my account
$mail->SMTPDebug = 2; // <<== enables SMTP debug information (for testing)
$mail->IsHTML(true); // if you are going to send HTML formatted emails
$mail->SingleTo = true; // if you want to send a same email to multiple users. multiple emails will be sent one-by-one.
$mail->From = "wie****@gmail.com"; //my gmail mail account
$mail->FromName = "My Name";
$mail->addAddress("art******@yahoo.com","art******"); //my yahoo mail account
//$mail->addAddress("[email protected]","User 2");
//$mail->addCC("[email protected]","User 3");
//$mail->addBCC("[email protected]","User 4");
$mail->Subject = "Testing PHPMailer with localhost";
$mail->Body = "Hi,<br /><br />This system is working perfectly.";
if(!$mail->Send())
echo "Message was not sent <br />PHPMailer Error: " . $mail->ErrorInfo;
else
echo "Message has been sent";
?>
Я уже пробую любой вариант, который смог найти в сети, но ничего не работает.
Я попробовал это с
— «PHPMailerAutoload.php» и «class.phpmailer.php» в качестве обязательного класса
— «$ mail-> SMTPSecure = ‘ssl’;» и «$ mail-> Port = 465;»
а также с
— «$ mail-> SMTPSecure = ‘tls’;» и «$ mail-> Port = 587;»
Вот лог-файлы отладки:
Debug-Log при использовании TLS с портом 587
SMTP -> ОТ СЕРВЕРА: 220 mx.google.com ESMTP cq6sm24503844pad.30 —
SMTP gsmtp -> ОТ СЕРВЕРА: 250-mx.google.com к вашим услугам,
[121.54.112.183] 250-РАЗМЕР 35882577 250-8BITMIME 250-STARTTLS
250-УЛУЧШЕННЫЕ СТАТУСКОДЫ 250-ТРУБОПРОВОДНЫЕ 250-CHUNKING 250 SMTPUTF8 SMTP
-> ОТ СЕРВЕРА: 220 2.0.0 Готов к запуску TLS SMTP -> ОТ СЕРВЕРА: 250-mx.google.com к вашим услугам, [121.54.112.183] 250-РАЗМЕР 35882577
250-8BITMIME 250-AUTH ВХОД PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN
OAUTHBEARER 250-ENHANCEDSTATUSCODES 250-ТРУБОПРОВОД 250-CHUNKING 250
SMTPUTF8 SMTP -> ОШИБКА: пароль не принят с сервера: 534-5.7.14
Пожалуйста, войдите через ваш веб-браузер и 534-5.7.14, а затем повторите попытку.
534-5.7.14 Узнайте больше на 534 5.7.14
https://support.google.com/mail/bin/answer.py?answer=78754
cq6sm24503844pad.30 — SMTP gsmtp -> ОТ СЕРВЕРА: 250 2.1.5 Сброшено
cq6sm24503844pad.30 — SMTP gsmtp -> ОТ СЕРВЕРА: 530-5.5.1
Требуется авторизация. Узнайте больше на 530 5.5.1
http://support.google.com/mail/bin/answer.py?answer=14257
cq6sm24503844pad.30 — SMTP gsmtp -> ОШИБКА: ПОЧТА не принята от
сервер: 530-5.5.1 Требуется аутентификация. Узнайте больше на 530 5.5.1
http://support.google.com/mail/bin/answer.py?answer=14257
cq6sm24503844pad.30 — gsmtp Ошибка следующего адреса From:
[email protected]: почта не принята с сервера, 530,5.5.1
Требуется авторизация. Узнайте больше на 530 5.5.1
http://support.google.com/mail/bin/answer.py?answer=14257
cq6sm24503844pad.30 — gsmtpОшибка SMTP-сервера: 5.5.1 Требуется аутентификация. Узнайте больше на 530
5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 cq6sm24503844pad.30 — gsmtp Сообщение не было отправлено. Ошибка PHPMailer:
следующий От адреса не удалось: [email protected]: почта не принят
от сервера, 530,5.5.1 Требуется аутентификация. Узнайте больше на 530 5.5.1
http://support.google.com/mail/bin/answer.py?answer=14257
cq6sm24503844pad.30 — gsmtpОшибка SMTP-сервера: 5.5.1 Требуется аутентификация. Узнайте больше на 530
5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 cq6sm24503844pad.30 — gsmtpОшибка SMTP-сервера: 5.5.1 Требуется аутентификация. Узнайте больше на 530
5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 cq6sm24503844pad.30 — gsmtpDebug-Log при использовании SSL с портом 465
SMTP -> ОТ СЕРВЕРА: 220 mx.google.com ESMTP kj9sm24304154pbc.37 —
SMTP gsmtp -> ОТ СЕРВЕРА: 250-mx.google.com к вашим услугам,
[121.54.112.183] 250-РАЗМЕР 35882577 250-8BITMIME 250-АВТОМ.
XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER 250-УЛУЧШЕННЫЕ СТАТУСКОДЫ
250-ТРУБОПРОВОД 250-CHUNKING 250 SMTPUTF8 SMTP -> ОШИБКА: Пароль не установлен
принято с сервера: 534-5.7.14 Пожалуйста, войдите через веб-браузер
и 534-5.7.14 затем попробуйте снова. 534-5.7.14 Узнайте больше на 534 5.7.14
https://support.google.com/mail/bin/answer.py?answer=78754
kj9sm24304154pbc.37 — SMTP gsmtp -> ОТ СЕРВЕРА: 250 2.1.5
kj9sm24304154pbc.37 — SMTP gsmtp -> ОТ СЕРВЕРА: 530-5.5.1
Требуется авторизация. Узнайте больше на 530 5.5.1
http://support.google.com/mail/bin/answer.py?answer=14257
kj9sm24304154pbc.37 — SMTP gsmtp -> ОШИБКА: ПОЧТА не принята от
сервер: 530-5.5.1 Требуется аутентификация. Узнайте больше на 530 5.5.1
http://support.google.com/mail/bin/answer.py?answer=14257
kj9sm24304154pbc.37 — gsmtp Ошибка следующего адреса From:
[email protected]: почта не принята с сервера, 530,5.5.1
Требуется авторизация. Узнайте больше на 530 5.5.1
http://support.google.com/mail/bin/answer.py?answer=14257
kj9sm24304154pbc.37 — gsmtpОшибка SMTP-сервера: 5.5.1 Требуется аутентификация. Узнайте больше на 530
5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 kj9sm24304154pbc.37 — gsmtp Сообщение не было отправлено PHPMailer Ошибка:
следующий От адреса не удалось: [email protected]: почта не принят
от сервера, 530,5.5.1 Требуется аутентификация. Узнайте больше на 530 5.5.1
http://support.google.com/mail/bin/answer.py?answer=14257
kj9sm24304154pbc.37 — gsmtpОшибка SMTP-сервера: 5.5.1 Требуется аутентификация. Узнайте больше на 530
5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 kj9sm24304154pbc.37 — gsmtpОшибка SMTP-сервера: 5.5.1 Требуется аутентификация. Узнайте больше на 530
5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 kj9sm24304154pbc.37 — gsmtp
Я проверил ссылки, которые предлагает Gmail с отладкой. Но ничего не работает. Когда я захожу в свою учетную запись в Интернете с той же информацией о пользователе и пароле, это работает.
Я также следовал советам, которые нашел в сети, чтобы разрешить менее безопасные приложения. Также я разрешил доступ к своей учетной записи в Google по ссылке https://accounts.google.com/DisplayUnlockCaptcha
Затем я проверил порты с помощью сканера портов, оба порта упоминаются как закрытые. Но я думаю, что они будут открыты по запросу приложения. Проверка с помощью telnet smtp.gmail.com прошла успешно.
Я пробовал скрипт также без запуска антивируса и брандмауэра — безрезультатно.
Постепенно я немного схожу с ума от этой проблемы. Может быть, кто-то может помочь мне здесь.
Andreas
Артур, это туф без ответа, зная правильные детали. Я имею в виду, что если у вас включена двухфакторная аутентификация, вам нужно будет установить специальный пароль приложения, который будет использоваться вместо пароля вашей учетной записи электронной почты.
Вы можете создать специальный пароль для приложения, следуя этим инструкциям: https://support.google.com/accounts/answer/185833
Затем установите $ mail-> Password для вашего конкретного пароля приложения.
Произвольная работа вокруг: иногда нам нужно включить двухэтапную проверку для некоторых учетных записей, тогда она будет работать (я не знал правильных причин, но это работает для некоторых учетных записей)
Но со стороны вот несколько советов по устранению неполадок:
1) проверьте еще раз [вы сказали U проверил это] SSL правильно настроен на вашем PHP (модуль, который обрабатывает его, по умолчанию не установлен на PHP. Вы должны проверить свою конфигурацию в phph.ini).
2) проверьте, разрешает ли ваш брандмауэр исходящие звонки на требуемый порт (здесь 465 или 587). Используйте Telnet, чтобы сделать это. Если порт не открыт, вам потребуется поддержка sysdmin для настройки конфигурации.
3) Откройте это https://support.google.com/mail/answer/14257?hl=en и выберите, следуя инструкциям, серверы Google блокируют любые попытки с неизвестных серверов, поэтому после того, как вы нажмете на кнопку проверки, все будет в порядке.
Я надеюсь, вы быстро разберетесь с этим!
Других решений пока нет …