2015-02-07 20 views
6

Tüm gelen iletileri nasıl Gmail API kullanarak PHP ile alabilirim? Sadece mesaj kimliği alabilirim ve bunun ötesinde hiçbir şey. Konu, Gönderen ve Mesaj Metni almam gerekiyor.Tüm gelen kutusu iletilerini, PHP API kullanarak, PHP API kullanarak alın

$list = $gmail->users_messages->listUsersMessages('me',['maxResults' => 10000, 'q' => 'category:primary']); 
    $messageList = $list->getMessages(); 

    $client->setUseBatch(true); 
    $batch = new Google_Http_Batch($client); 

    foreach($messageList as $mlist){ 
     $batch->add($gmail->users_messages->get('me',$mlist->id, ['format' => 'raw']),$mlist->id); 
    } 

    $batchMessages = $batch->execute(); 
    $inboxMessage = []; 


    foreach($batchMessages as $dMessage){ 
     $messageId = $dMessage->id; 
     $messageSnippet = $dMessage->snippet; 

     $dcMessage = base64url_decode($dMessage->getRaw()); 

     $params['include_bodies'] = true; 
     $params['decode_bodies'] = true; 
     $params['decode_headers'] = true; 

     $mimeDecode = new Mail_mimeDecode($dcMessage); 
     $mimeSubject = $mimeDecode->decode($params)->headers['subject']; 



     $inboxMessage[] = [ 
      'messageId' => $messageId, 
      'messageSubject' => $messageSubject 
     ]; 
    } 
+0

Bence bu bilgiyi almak için iletinin kimliğiyle message.get'i çağırmalısınız. Get yöntemini çağıran bilgi, burada açıklandığı gibi faydalı bilgi yükleyicileri [] içerecektir: https://developers.google.com/gmail/api/v1/reference/users/messages – Gerardo

cevap

5

Bu şekilde yaptım.

$list = $gmail->users_messages->listUsersMessages('me',['maxResults' => 10, 'q' => $search]); 

    $messageList = $list->getMessages(); 
    $inboxMessage = []; 

    foreach($messageList as $mlist){ 

     $optParamsGet2['format'] = 'full'; 
     $single_message = $gmail->users_messages->get('me',$mlist->id, $optParamsGet2); 

     $message_id = $mlist->id; 
     $headers = $single_message->getPayload()->getHeaders(); 
     $snippet = $single_message->getSnippet(); 

     foreach($headers as $single) { 

      if ($single->getName() == 'Subject') { 

       $message_subject = $single->getValue(); 

      } 

      else if ($single->getName() == 'Date') { 

       $message_date = $single->getValue(); 
       $message_date = date('M jS Y h:i A', strtotime($message_date)); 
      } 

      else if ($single->getName() == 'From') { 

       $message_sender = $single->getValue(); 
       $message_sender = str_replace('"', '', $message_sender); 
      } 
     } 


     $inboxMessage[] = [ 
      'messageId' => $message_id, 
      'messageSnippet' => $snippet, 
      'messageSubject' => $message_subject, 
      'messageDate' => $message_date, 
      'messageSender' => $message_sender 
     ]; 

    } 
+0

Merhaba shimi, bana gönderebilir bunun tam bir işlevi? Buna çok ihtiyacım var. Bu benim e-posta adresim: [email protected] – Samphors

+0

Tüm işlevi herkesle paylaşabilir misiniz lütfen? – boris