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
}
}
参考にした記事はこちら