当前位置: 首页 > 知识库问答 >
问题:

使用PHP使用Gmail API获取所有收件箱消息

商夜洛
2023-03-14
 $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
        ];
    }

共有1个答案

卫梓
2023-03-14
$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();
        } elseif ($single->getName() == 'Date') {
            $message_date = $single->getValue();
            $message_date = date('M jS Y h:i A', strtotime($message_date));
        } elseif ($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
    ];
}
 类似资料:
  • 问题内容: 我想接收一个包含文本中所有h1标签值的数组 示例,如果这在给定的输入字符串中: 我需要接收包含以下内容的数组: 我已经弄清楚了如何获取字符串的第一个h1值,但是我需要给定字符串中所有h1标签的所有值。 我目前正在使用它来接收第一个标签: 我将要解析的字符串传递给它,并以$ tagname的形式输入“ h1”。我不是自己写的,我一直在尝试编辑代码以实现我想要的功能,但没有任何效果。 我希

  • 问题内容: 出于某种原因,我使用以下代码将文件名始终保持为“ 1”: 当我在$ results_array中回显每个元素时,我得到了一堆‘1’,而不是文件名。如何获得文件名? 问题答案: 不要打扰open / readdir,而使用:

  • 问题内容: 目前,我正在使用以下程序从elasticsearch中提取ID及其严重性信息。 我相信默认情况下查询返回10行。我在elasticsearch中有超过10000行。我需要获取所有信息。 有人可以指导我如何运行同一查询以获取所有记录吗? 问题答案: 您可以使用helper函数来从索引中检索所有文档:

  • 问题内容: 我一直在到处寻找它,但仍然找不到解决方案:如何从mySQL列中获取所有值并将它们存储在数组中? 例如:表名称:客户列名称:ID,名称行数:5 我想获得此表中所有5个名称的数组。我该怎么做?我正在使用PHP,而我只是想: 然后使用 PHP函数将这些值存储在数组中。 问题答案: 请注意,此答案已过时! 从PHP7开始,mysql扩展不再可用。如果要在PHP7中使用旧的mysql函数,则必须

  • 使用Jmeter的正则表达式提取器,我试图从一个html文档中获取仅与javascript相关的所有链接或路径--即包含“.js”子字符串的hrefs。我使用了next regex表达式,但它也是get“.css”链接: 下面是html片段的相关示例: 你能帮我用右正则表达式吗?它只得到“.js”链接,而不得到包含“.css”/“svg”等的其他链接?

  • 问题内容: 我需要从http://vortaro.us.to/ajax/epo/eng/ +’word’+“ /?callback =?” 获取json数据 。工作示例(信誉不足) 我知道如何用JavaScript来做,但是我需要我的php文件来获取此数据,它必须是服务器端的,谢谢。我是新手,我已经花了整整一天的时间来弄清楚这一点。fopen和fread不起作用, 问题答案: file_get_c