Gmail smtp xoauth2 через почту ламината (zend) - PullRequest
1 голос
/ 18 июня 2020

У меня небольшая проблема с аутентификацией Gmail, я пытаюсь подключиться через токен, полученный OAuth2.

Я помещаю свой код ниже.

try {
        $xOAuthRequest = base64_encode('user=' . $account->getSmtpServer()->getLogin() . "\1auth=Bearer " . $account->getOAuthToken()->getToken() . "\1\1");
        $transport = new TransportSmtp();

        $options = new SmtpOptions([
            'host' => 'smtp.gmail.com',
            //'port' => 587,
            'connection_class' => 'smtp',
            'connection_config' => [
                'username' => $account->getSmtpServer()->getLogin(),
                //'password' => $account->getSmtpServer()->getPassword(),
                'ssl' => 'tls',
                'port' => 587,
                'auth' => 'xoauth',
                'xoauth_request' => $xOAuthRequest
            ]
        ]);

        $transport->setOptions($options);
        $this->setTransport($transport);

    } catch (Exception $exception){
        dump($exception);
    }

Возврат кода:

5.7.0 Authentication Required. Learn more at 5.7.0 https://support.google.com/mail/?p=WantAuthError v23sm426024ljg.122 - gsmtp

Я также пробовал использовать SSL и порт 465 и раскомментированный пароль.

Что я делаю не так?

...