この既存のスクリプトや手順の投稿を変更して、Gmailのゴミ箱を自動的に空にするように機能させるにはどうすればよいですか?

Nov 25 2020

上記の方法についてこの投稿を見つけましたが、機能していないようです。

これがエラーメッセージです

Nov 25, 2020, 3:52:51 PM    Error   GoogleJsonResponseException: API call to gmail.users.threads.delete failed with error: Delegation denied for [email protected]
    at [unknown function](Code:29:33)
    at removeMyTest2(Code:23:28)

に移動 https://script.google.com

次に、新しいプロジェクトを作成し、以下をそのプロジェクトに貼り付けます。

function removeMyTest2() {

var mymail = "[email protected]";

var mylabel = "trash";

var permanentlyRemoveMyLabel = true;

var pageToken;

do {

    var threadList = Gmail.Users.Threads.list('me', {

    q: 'in:' + mylabel,

    pageToken: pageToken

    });

    if (threadList.threads && threadList.threads.length > 0) {

        threadList.threads.forEach(function(thread) {

        Logger.log('id: %s snippet: %s', thread.id, thread.snippet);

        if (permanentlyRemoveMyLabel) {

            Gmail.Users.Threads.remove(mymail, thread.id);

            Logger.log('id: %s snippet: %s REMOVED', thread.id, thread.snippet);

        }

    });

   }

   pageToken = threadList.nextPageToken;

   } while (pageToken);

}

スクリプトをそのまま実行しようとすると、エラーが発生します。

次に、[リソース]をクリックして、[高度なGoogleサービス]に移動します。

Gmail APIまで下にスクロールして、オンにします。

次に、GmailAPIを有効にした場所と同じウィンドウで[GoogleCloud PlatformLink]をクリックします。

次に、[サービスとAPIを有効にする]をクリックして、Gmailを検索します。Gmailをクリックして有効にします。

次に、スクリプト画面に戻り、[編集]メニューをクリックして、[現在のプロジェクトのトリガー]に移動します。

トリガーを設定して、1分/時間ごと、またはスクリプトを実行する時間間隔ごとにスクリプトを実行し、ごみ箱を空にします。

IN:TRASH IN:SPAMまたはその他の必要なラベルから削除できることに注意してください。リマインダーは削除されず、削除は最終的なものです。どのメールも復元できません。

回答

1 Rubén Nov 26 2020 at 05:16

警告

参照された回答のコードは、Gmailのゴミ箱からメッセージを完全に削除します。理解できないコードをコピーして実行するべきではありません。


次のコード行が編集されていないため、参照されたエラーメッセージが発生した可能性があります。

var mymail = "[email protected]";

交換する"[email protected]"ことにより、Session.getActiveUser().getEmail()

資源

  • https://developers.google.com/apps-script/reference/base/session#getActiveUser()

参照された回答の元の内容は廃止されました。少し前に私が編集しました。