Извлечение Gmail с помощью PHP: imap_open (): не удалось открыть поток - PullRequest
0 голосов
/ 27 сентября 2019

Предисловие:

Я прочитал несколько потоков StackOverflow и перепробовал практически все из них.

  1. Я пытаюсь настроить IMAP через PHP для извлечения некоторых электронных писем, используя Clivern / Imap
  2. Я также попробовал пост Дэвида Уолша: Получение электронной почты Gmail с использованием PHP и IMAP

То, что я сделал:

  1. Пробовал это, используя учетную запись GSuite и Gmail;IMAP включен для обоих.
  2. Разрешено «Менее безопасные приложения» для подключения (даже если я работаю по действующему SSL). OpenSSL установлен (OpenSSL 1.0.2o 27 марта 2018 г.)
  3. Я закончил Дисплей Разблокировка Captcha
  4. Iпробовал тестировать в нескольких локальных / размещенных средах

Проблема:

  1. Соединение работает, когда я использую GSuite;происходит сбой при использовании Gmail (я несколько раз проверил электронную почту / пароль и сравнил параметры IMAP рядом ... все в порядке)
  2. Ошибка, возникающая при попытке проверить Gmail черезБиблиотека Clivern: Warning --> imap_open(): Couldn't open stream {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX
  3. Ошибка при попытке проверить Gmail с помощью функций PHP: Can not authenticate to IMAP server: [AUTHENTICATIONFAILED] Invalid credentials (Failure)

Мой код:

// Using Library
use Clivern\Imap\Core\Connection;
use Clivern\Imap\MailBox;

$imap_email = 'my_email@gmail.com';
$imap_password = 'my_password';

$connection = new Connection(
    "imap.gmail.com",
    "993",
    $imap_email,
    $imap_password,
    "/ssl", // I've also tried /ssl/novalidate-cert
    "INBOX"
);

$connection->connect();
$mailbox = new MailBox($connection);
$folders = $mailbox->getFolders();
echo var_dump($folders);
$connection->disconnect();

// Using PHP functions
$hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
$username = $imap_email;
$password = $imap_password;

/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());

Мой вопрос:

Что еще может вызывать сбой аутентификации в Gmail?

... Меня особенно смущает, почему GSuiteбудет работать, а Gmail - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...