PHP Gmail Api - 删除邮件

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)));

}


开心每一天1111
浏览 83回答 1
1回答

慕森王

我相信你的目标和情况如下。您想使用 php 的 googleapis 删除消息。您已经能够获取和输入 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_Service_Gmail::GMAIL_READONLY);,请将其修改为$client->setScopes("https://mail.google.com/");。并再次授权。重要的在这个修改后的脚本中,消息被完全删除。所以我想建议使用示例消息来测试它。请小心这一点。参考:方法:users.messages.delete
打开App,查看更多内容
随时随地看视频慕课网APP