Gmail의 수신 메일을 GoogleAppScript 로 자동 삭제 하기

업무 상 리모트 서버의 접속 때 마다, 설정 한 e-malil 로 1회용 비밀 번호가 매번 수신 되고, 해당 비밀 번호를 입력 후에 접속 하고 있습니다. 문제는 1회용 비밀 번호다 보니 일정 시간이 지나면 해당 메일을 남겨둘 필요가 없는데, 매번 삭제 하기도 번거 롭고, 한동안 삭제 하지 않으면 계속 해서 쌓여 있게 되는 문제가 있었습니다.
그래서, 자동으로 삭제 하는 방법을 찾던 중, Google에서 제공 되는 GAP(Google App Script) 를 알게 되었고, 해당 스크립트를 이용 하면 필터링 한 특정 라벨의 메일만 지정 된 시간에 자동 삭제가 가능 했기에 해당 방법을 알려 드리겠습니다.






우선 신규로 도큐멘트(구글 문서)를 하나 생성 해 주시고, 상단의 도구 > 스크립트 편집기...  을 클립해 주세요







[스크립트 편지기...] 의 화면으로 접속 하셨으면 아래와 같은 내용이 화면에 표시 되어 있습니다.

  function myFunction() {
  
  }

아래의 글 에서 펑션 안의 내용만 복사 해서 시간 지정 과 삭제 하실 라벨(메일) 만 고쳐서 사용 하시면 됩니다.
해당 내용이 무슨 말인지 잘 모르겠다 하시는 분이시라면, 위의 [스크립트 편지기...] 단계에서 적혀 있던 글은 다 삭제 하고, 아래의 내용을 전부 복사 해 주세요.

--------- 여기 아래 부터 복사 ---------
function MyNotesTempCleanUp(){
  var delayDays = 14;  //14일이 지난 메일을 삭제
  var maxDate = new Date();
  
  maxDate.setDate(maxDate.getDate()- delayDays);
  
  //삭제할 메일의 위치[라벨]를 지정 : MyNotes/Temp
  var label = GmailApp.getUserLabelByName("MyNotes/Temp");
  
  // 삭제 시작
  var threads = label.getThreads();
  for (var i = 0; i < threads.length; i++) {
    if (threads[i].getLastMessageDate() < Time)
      {
        threads[i].moveToTrash();
      }
  }
}
--------- 위 내용을 복사 ---------
※위 스크립트는 지정된 [라벨]의 메일에서 14일 이전의 메일들을 모두 삭제 시키는 내용 입니다


스크립트 작성을 마쳤으면 프로젝트 이름을 저장 해 줍니다



이제 작성된 스크립트를 작업 트리거를 사용해 원하는 시간에 맞춰 실행 될 수 있도럭 설정 해줍니다
★2018년 업데이트로 인한 트리거 설정 화면이 수정 되었습니다.
(이동하기)


※ 도큐먼트 파일 에서 상단의 시계 부분을 클릭







※현재 프로젝트의 트리거 창을 열고 트리거를 추가



※12시간에 한번씩 스크립트가 실행 되도록 설정 하고 저장


본인의 구글 계정으로 인증 확인을 해주면 끝


※디버깅 모드
함수선택를 선택 후 좌측에 보이는 [실행] [디버그] 버튼으로 디버깅이 가능 합니다

1.함수 선택






2. 디버깅 시작

댓글