2017-03-28 1 views
2

'Apps script queue'라벨로 메일을 검색하고 이러한 특정 메일 (전체 스레드가 아닌)에 새 라벨을 줄 수 있습니까?Google Apps Script로 Gmail 메일에 라벨 지정 (전체 스레드 아님)

GmailApp.search ('label : Apps script queue')를 사용할 때 요청한 메일을 받았지만 이러한 메일에 새 라벨을 할당하면 메일함에있는 다른 모든 메일 (메일의 다른 장소) 같은 라벨을 얻을 것입니다. 그리고 그것은 내가 원하는 것이 아닙니다.

답변

0

Gmail에서 레이블은 스레드에 적용되며 스레드의 단일 전자 메일 메시지에는 적용 할 수 없습니다.

그러나 개별 메시지에 별/색상을 적용 할 수 있습니다.

+0

Gmail 인터페이스에서 개별 메일에 라벨을 지정할 수 있기 때문에 불가능하다고 생각합니다. 지금까지 Gmail에서 할 수있는 모든 것을 경험 했으므로 Apps Script를 할 수 있습니다. – Vincent

0

이 코드는 스레드의 특정 메시지에 레이블을 추가하는 동안 오류를 반환하지 않으며 스레드 목록 방법을 사용하면 특정 메시지 ID (별도 처리됨)에만 배치된다는 것을 알 수 있습니다. 하지만 UI (Gmail 사이트)가 대화 모드에 있으면 두 라벨에서 모두 볼 수 있습니다.

function searchMail(){ 
    var threads = GmailApp.search("SOME SEARCH"); 
    Logger.log(threads.length); 
    listLabel('me'); 
    for (var i = 0; i < threads.length; i++) { 
    var messages = threads[i].getMessages(); 
    Logger.log(messages.length); 

    for (var j = 0; j < messages.length; j++){ 
     if (messages[j].isInInbox()){ 
     Logger.log('me' + 'id msg: ' + messages[j].getId()); 
     //Add label to the first reply 
     addLabel('me',messages[1].getId()); 
     } 
     else{ 
     Logger.log('me' + 'id msg: ' + messages[j].getId() +" not in inbox"); 
     } 
    } 
    } 
} 

function addLabel(userId, messageId){ 

    var resource = {addLabelIds: ["Label_6"]} 

    Gmail.Users.Messages.modify(resource, userId, messageId); 

} 
+0

감사 합니다만, 거기에 ... 왜냐하면받은 편지함은 관련이 없기 때문입니다. 쓰레드의 모든 메시지를 다시 루핑 할 때 "SOME SEARCH"레이블이있는 메시지 만 검색해야합니다. 그리고이 메시지들만 "나"에게 재명 표되어야합니다. – Vincent

관련 문제