Google Apps ScriptでGmailの受信トレイのラベルを外すコード

Google Apps Script(通称、GAS)にて、Gmailにて「受信トレイ」とラベルが付いているメールをアーカイブに移動させようと、試行錯誤した。

アーカイブに移動させるのであれば、thread.moveToArchive() で良いはずなのだが、

「受信トレイ」とラベルが付いているから?か、なぜか、うまくアーカイブに移動せず、受信トレイにメールが居続ける。

困って、chat-GPTに雑な英語で聞いてみたら、下のような回答が返ってきた。

ちなみに、ググっても、なかなかドンピシャの情報に辿り着かない。アーカイブに入れるのでなく削除するサンプルコードの記事は見つかったけど。

上のコードをそのまま使うと、問答無用で、受信トレイのメールから”受信トレイ”ラベルを外すので、条件を付け加えることが必要になるが、参考になった。

ポイントは、

GmailApp.getUserLabelByName にて、inbox ラベルのオブジェクトを取得し、そのオブジェクトで、.removeLabel を指示する点。

コードは、こちら。

function removeInboxLabel() {
  var label = GmailApp.getUserLabelByName("inbox"); // get inbox label
  var threads = GmailApp.search("label:inbox"); // search for threads with inbox label
  for (var i = 0; i < threads.length; i++) {
    threads[i].removeLabel(label); // remove inbox label
  }
}

参考にした記事はこちら

この記事を書いた人

大東 信仁

カンパチが好きです。

プロフィールはこちら

10月14日開催 参加者募集中
(画像をタップ→詳細へ)

ミッションナビゲート モニター
(画像をタップ→詳細へ)

広告