Как исправить эту проблему? Не удалось открыть поток {imap.gmail.com:993/imap/ssl}. [AUTHENTICATIONFAILED] Неверные учетные данные - PullRequest
0 голосов
/ 29 марта 2020

Я использую laravel -IMAP для интеграции Gmail с моим проектом laravel и пакет, которому я следую, является Webklex / laravel -imap . Проблема заключается в том, что, когда я тестирую свой код, всплывающее сообщение об ошибке приводит к множеству ссылок, чтобы выяснить мою проблему, одно решение, которое я нахожу, состоит в том, чтобы включить Доступ к IMAP: включить IMAP , но это не решение для всех пользователей я хочу получить электронные письма тех пользователей, которые будут использовать это приложение с включением доступа к imap. Есть ли другое решение для преодоления этой проблемы?

Контроллер

class TestController extends Controller
{
    public function index(){

        $oClient = new Client([
            'host'          => 'imap.gmail.com',
            'port'          => 993,
            'encryption'    => 'ssl',
            'validate_cert' => true,
            'username'      => '**********',
            'password'      => '**********',
            'protocol'      => 'imap'
        ]);
        /* Alternative by using the Facade
        $oClient = Webklex\IMAP\Facades\Client::account('default');
        */

        //Connect to the IMAP Server
        $oClient->connect();

        //Get all Mailboxes
        /** @var \Webklex\IMAP\Support\FolderCollection $aFolder */
        $aFolder = $oClient->getFolders();

        //Loop through every Mailbox
        /** @var \Webklex\IMAP\Folder $oFolder */
        foreach($aFolder as $oFolder){

            //Get all Messages of the current Mailbox $oFolder
            /** @var \Webklex\IMAP\Support\MessageCollection $aMessage */
            $aMessage = $oFolder->messages()->all()->get();

            /** @var \Webklex\IMAP\Message $oMessage */

            foreach($aMessage as $oMessage){
                echo $oMessage->getSubject().'<br />';
                echo 'Attachments: '.$oMessage->getAttachments()->count().'<br />';
                echo $oMessage->getHTMLBody(true);
            }
        }
    }
}
...