簡體   English   中英

PHP Gmail Api - 刪除郵件

[英]PHP Gmail Api - Delete Mail

閱讀后如何刪除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)));
}

我相信你的目標和情況如下。

  • 您想使用 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可以用於刪除消息。 如果出現scope相關的錯誤,請添加https://mail.google.com/的scope並重新測試。 但是當范圍改變時,請包含訪問令牌和刷新令牌的文件重新授權。 這樣,新的范圍就會反映到訪問令牌和刷新令牌中。 請注意這一點。

    • 例如,如果在您當前的腳本中,范圍的使用方式$client->setScopes(Google_Service_Gmail::GMAIL_READONLY); , 請修改為$client->setScopes("https://mail.google.com/"); . 並再次授權。
  • 重要的

    • 在這個修改后的腳本中,消息被完全刪除。 因此,我建議使用示例消息對其進行測試。 請注意這一點。

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM