Я использую 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);
}
}
}
}