2017-02-25 1 views
0

가지고 다른 사람 고급의 Gmail 서비스 호출Gmail.Users.Messages.remove (나, ID) - 찾을 수 없습니다 오류

`Gmail.Users.Messages.remove(me, id)` 

지금 오류를주고 있음을 발견? 누구든지 고칠 수 있습니까?

몇 시간마다 스팸 및 휴지통을 삭제하는 신뢰할 수있는 스크립트가 있습니다. 2 월 21 일쯤부터 유효한 스레드 ID가 전달 될 때도 "찾을 수 없음"오류가 발생합니다.

이것은 스크립트입니다. 일부 로깅 메시지를 추가했습니다.

function deleteForever() { 
    var threads = GmailApp.getSpamThreads(0, 100); 
    var me = Session.getActiveUser().getEmail(); 
    for (var i = threads.length -1; i >=0; i--) { 
    var thisid=threads[i].getId(); 
     Logger.log("Removing thread " +i + ' of ' + threads.length + " from Spam with ID = " + thisid); 

    try { 
    var thisthread=GmailApp.getThreadById(thisid); 
    Logger.log("Found the thread."); 
    Gmail.Users.Messages.remove(me, thisid); 
    }catch(err) { 
    Logger.log("Error " + err.message); 
    }; 

    } 
    Logger.log("Finished removing " + threads.length + " threads from Spam."); 

    var threads = GmailApp.getTrashThreads(0, 100); 
    for (var i = threads.length -1; i >=0; i--) { 
     Logger.log("Removing thread " +i + ' of ' + threads.length + " from Trash"); 
    try { 
    Gmail.Users.Messages.remove(me, threads[i].getId()); 
    } catch(err) { 
    Logger.log("Error " + err.message); 
    }; 
    } 
    Logger.log("Finished removing " + threads.length + " threads from Trash."); 
} 

이제는 발견되지 않은 오류가 표시됩니다.

[17-02-25 11:45:49:790 GMT] Removing thread 17 of 18 from Spam with ID = 15a6fe6c1a86a020 
[17-02-25 11:45:49:829 GMT] Found the thread. 
[17-02-25 11:45:49:959 GMT] Error Not Found 
[17-02-25 11:45:49:959 GMT] Removing thread 16 of 18 from Spam with ID = 15a6fe6c168f4a03 
[17-02-25 11:45:50:000 GMT] Found the thread. 
[17-02-25 11:45:50:129 GMT] Error Not Found 
[17-02-25 11:45:50:130 GMT] Removing thread 15 of 18 from Spam with ID = 15a6fed29f6650b3 
[17-02-25 11:45:50:165 GMT] Found the thread. 
[17-02-25 11:45:50:294 GMT] Error Not Found 
..... 
    ` 

제거 작업을 시도하기 전에 thisid가 유효한 ID로 설정되어 있는지 확인하십시오.

답변

3

검색 기능이 스레드를 가져 오는 동안 메시지를 제거하고 있습니다.

대신

Gmail.Users.Messages.remove("me", threadId); 
+0

Gmail.Users.Threads.remove("me", threadId) 

사용

예 그것은 그 것이었다. 아마도 스레드에 단 하나의 메시지가있는 곳에서는 스팸이나 휴지통에 스레드가있는 경우는 많지 않지만 삭제 된 것은없는 경우가 많았습니다. –

+0

문제가 해결되면 가장 적합한 대답을 선택하고이 질문을 닫으십시오. –

관련 문제