* Enable Batch Request to ease up on our HTTP Requests */ $client->setUseBatch(true); $batch = new Google_Http_Batch($client); /** * Prepare batch request for getting user messages */ foreach ($messageList as $mlist) { $batch->add($service->users_messages->get('me', $mlist->id, ['format' => 'raw']), $mlist->id); } /** * Execute the Batch Request */ $batchMessages = $batch->execute(); $inboxMessage = []; /** * Create a new Mime Mail Parser Instance ready to decode raw message content */ $mimeDecode = new PhpMimeMailParser\Parser(); foreach ($batchMessages as $dMessage) { $messageId = $dMessage->id; $gMessage = $service->users_messages->get('me', $messageId, ['format' => 'raw']); $dcMessage = base64url_decode($dMessage->getRaw()); $mimeDecode->setText($dcMessage); $mimeSubject = $mimeDecode->getHeader('subject'); $inboxMessage[] = ['messageId' => $messageId, 'messageSubject' => $mimeSubject]; } } } catch (Google_Auth_Exception $e) { $authException = true; }
/** * Returns the email address of the author of message n°$id (needs message * to be parsed, beware of resources usage) */ protected function readMessageAuthorEmail($id) { $messageFile = $this->getMessageFileForId($id); $parser = new PhpMimeMailParser\Parser(); $parser->setPath($messageFile); $from = $this->extractEmailFromHeader($parser->getHeader('from')); return $from; }