Script do Google Apps - Etiquetar email com base no corpo do email [Otimizar código]

Eu pretendo fazer o seguinte:

É recebido um email que corresponde aos critérios a serem colocados na pasta Rótulo A.Um novo email é recebido.O corpo deste novo email é uma duplicata do primeiro recebido.Este novo email ignora a caixa de entrada e vai para a pasta Etiqueta B.

Aqui está como eu o implementei:

Todos os novos e-mails são marcados como "Original"Quando o script é executado, ele compara o corpo do email com todos os anteriores.Se o corpo estiver duplicado, ele será rotulado como "Duplicado", movido para "Arquivar" e o rótulo "Original" será removido.

O código é o seguinte:

function emailLabeling() {


var DUPLICATE = _getLabel();
  var labels = GmailApp.getUserLabelByName("Original");
  if(labels != null){
    var threads = labels.getThreads();
    for (var i = 0; i < threads.length; i++){
      var messages = threads[i].getMessages();
      for (var j = 0; j < messages.length; j++){
        var message = messages[j];
        for (var k = i; k < threads.length; k++){
        var messages_check = threads[k].getMessages();
          for (var l = j; l < messages_check.length; l++){
            var message_check = messages_check[l];
            if(message_check.getPlainBody() == message.getPlainBody()){
              if(i !=  k || j != l){
                Logger.log(i +""+ j +""+ k +""+ l);
                DUPLICATE.addToThread(threads[i]);
                labels.removeFromThread(threads[i]);
                GmailApp.moveThreadToArchive(threads[i]);
              }
            }
          }
        }
      }
    }
  }
  else{
    Logger.log("Label Not Found!");
  }
}

function _getLabel() {
  var label_text = "Duplicates";
  var label = GmailApp.getUserLabelByName(label_text);
  if (label == null) {
    var label = GmailApp.createLabel(label_text);
  }
  return label;
}

O código funciona bem. O problema está no loop aninhado 4, que aumenta exponencialmente o tempo de execução à medida que o número de emails "Originais" aumenta.

Existe uma maneira de otimizar esse código? Existe uma lógica mais inteligente para implementar essa idéia?

Qualquer ajuda seria apreciada.

questionAnswers(1)

yourAnswerToTheQuestion