PHP Gmail Api-删除邮件

PHP Gmail Api-删除邮件,php,api,gmail,Php,Api,Gmail,阅读后如何删除gmail邮件?试着到处找,但找不到适合我的解决方案。目前,下面的代码阅读了主题和正文,我想在阅读后立即删除该特定邮件 $service = new Google_Service_Gmail($client); foreach ($messages as $message){ $msg = $service->users_messages->get($userId, $message->getId()); $headers = $

阅读后如何删除gmail邮件?试着到处找,但找不到适合我的解决方案。目前,下面的代码阅读了主题和正文,我想在阅读后立即删除该特定邮件

$service = new Google_Service_Gmail($client);
foreach ($messages as $message){
        $msg = $service->users_messages->get($userId, $message->getId());

        $headers = $msg->getPayload()->getHeaders();
        $subject = array_values(array_filter($headers, function($k){
            return $k['name'] == 'Subject';
        }));
        
        $subject = $subject[0]->getValue();
        $body = base64_decode(var_export($msg->payload->body->data, true)));
}

我相信你的目标和情况如下

$service = new Google_Service_Gmail($client);
foreach ($messages as $message){
    $msg = $service->users_messages->get($userId, $message->getId());

    $headers = $msg->getPayload()->getHeaders();
    $subject = array_values(array_filter($headers, function($k){
        return $k['name'] == 'Subject';
    }));
    
    $subject = $subject[0]->getValue();
    $body = base64_decode(var_export($msg->payload->body->data, true)));

    $service->users_messages->delete($userId, $message->getId());  // Added
}
  • 您想使用googleapis for php删除消息
  • 您已经能够获取和放置Gmail API的值
在本例中,它使用Gmail API中的“users.messages.delete”方法

示例脚本: 当您的脚本被修改时,它将变成如下所示

$service = new Google_Service_Gmail($client);
foreach ($messages as $message){
    $msg = $service->users_messages->get($userId, $message->getId());

    $headers = $msg->getPayload()->getHeaders();
    $subject = array_values(array_filter($headers, function($k){
        return $k['name'] == 'Subject';
    }));
    
    $subject = $subject[0]->getValue();
    $body = base64_decode(var_export($msg->payload->body->data, true)));

    $service->users_messages->delete($userId, $message->getId());  // Added
}
  • “users.messages.delete”方法不返回任何值。请小心这个
注:
  • 在这种情况下,它假定
    $service
    可用于删除消息。如果发生与作用域相关的错误,请添加
    https://mail.google.com/
    然后再次测试。但当作用域发生变化时,请删除包含访问令牌和刷新令牌的文件并重新授权。这样,新的作用域将反映到访问令牌和刷新令牌。请小心这个

    • 例如,如果在当前脚本中,作用域的使用方式类似于
      $client->setScopes(Google\u Service\u Gmail::Gmail\u READONLY),请将其修改为
      $client->setScopes(“https://mail.google.com/");。并再次授权
  • 重要

    • 在这个修改过的脚本中,消息被完全删除。因此,我建议使用一个示例消息来测试它。请小心这个
参考:

    • 我相信你的目标和情况如下

      $service = new Google_Service_Gmail($client);
      foreach ($messages as $message){
          $msg = $service->users_messages->get($userId, $message->getId());
      
          $headers = $msg->getPayload()->getHeaders();
          $subject = array_values(array_filter($headers, function($k){
              return $k['name'] == 'Subject';
          }));
          
          $subject = $subject[0]->getValue();
          $body = base64_decode(var_export($msg->payload->body->data, true)));
      
          $service->users_messages->delete($userId, $message->getId());  // Added
      }
      
      • 您想使用googleapis for php删除消息
      • 您已经能够获取和放置Gmail API的值
      在本例中,它使用Gmail API中的“users.messages.delete”方法

      示例脚本: 当您的脚本被修改时,它将变成如下所示

      $service = new Google_Service_Gmail($client);
      foreach ($messages as $message){
          $msg = $service->users_messages->get($userId, $message->getId());
      
          $headers = $msg->getPayload()->getHeaders();
          $subject = array_values(array_filter($headers, function($k){
              return $k['name'] == 'Subject';
          }));
          
          $subject = $subject[0]->getValue();
          $body = base64_decode(var_export($msg->payload->body->data, true)));
      
          $service->users_messages->delete($userId, $message->getId());  // Added
      }
      
      • “users.messages.delete”方法不返回任何值。请小心这个
      注:
      • 在这种情况下,它假定
        $service
        可用于删除消息。如果发生与作用域相关的错误,请添加
        https://mail.google.com/
        然后再次测试。但当作用域发生变化时,请删除包含访问令牌和刷新令牌的文件并重新授权。这样,新的作用域将反映到访问令牌和刷新令牌。请小心这个

        • 例如,如果在当前脚本中,作用域的使用方式类似于
          $client->setScopes(Google\u Service\u Gmail::Gmail\u READONLY),请将其修改为
          $client->setScopes(“https://mail.google.com/");。并再次授权
      • 重要

        • 在这个修改过的脚本中,消息被完全删除。因此,我建议使用一个示例消息来测试它。请小心这个
      参考:

      @Clinkz MTA感谢您的回复。我很高兴您的问题得到了解决。@Clinkz MTA感谢您的回复。我很高兴你的问题解决了。