이 스크립트 및 / 또는 단계의 기존 게시물을 수정하여 Gmail 휴지통을 자동으로 비우는 방법은 무엇입니까?
위의 작업을 수행하는 방법에 대한 이 게시물 을 찾았 지만 작동하지 않는 것 같습니다.
다음은 오류 메시지입니다.
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 또는 원하는 다른 레이블에서 삭제할 수 있습니다. 알림은 삭제되지 않으며 최종 삭제입니다. 이메일을 복구 할 수 없습니다.
답변
경고
참조 된 답변 의 코드 는 Gmail 휴지통에서 메시지를 영구적으로 삭제합니다. 이해할 수없는 코드를 복사하고 실행해서는 안됩니다.
다음 코드 행이 편집되지 않았기 때문에 참조 된 오류 메시지가 발생했을 가능성이 큽니다.
var mymail = "[email protected]";
교체 "[email protected]"
로Session.getActiveUser().getEmail()
자원
- https://developers.google.com/apps-script/reference/base/session#getActiveUser()
참조 된 답변 의 원래 내용 은 쓸모가 없습니다. 몇 분 전에 제가 편집했습니다.