이 스크립트 및 / 또는 단계의 기존 게시물을 수정하여 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까지 아래로 스크롤하여 켭니다.

그런 다음 Gmail API를 사용하도록 설정 한 창에서 Google Cloud Platform 링크를 클릭합니다.

그런 다음 서비스 및 API 사용을 클릭하고 Gmail을 검색하십시오. Gmail을 클릭 한 다음 활성화하십시오.

그런 다음 스크립트 화면으로 돌아가 편집 메뉴를 클릭하고 현재 프로젝트의 트리거로 이동합니다.

매분 / 시간마다 또는 스크립트를 실행할 시간 간격으로 스크립트를 실행하도록 트리거를 설정하고 휴지통을 비 웁니다.

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

참조 된 답변 의 원래 내용 은 쓸모가 없습니다. 몇 분 전에 제가 편집했습니다.