É possível consultar mensagens do Gmail com carimbo de data e hora?

13

É possível pesquisar todas as mensagens do Gmail em um intervalo mais granular que o dia?

Por exemplo, eu poderia procurar todas as mensagens de bate-papo das 15:00 às 17:00 em 4 de outubro? Como isso seria?

Olhando para a referência de pesquisa avançada do Gmail, notei que eles mencionam horários específicos, mas não especificam o formato, provavelmente não é suportado, mas pensei em verificar se apenas inserisse pesquisas no formato errado. .

Exemplo: depois: 2004/04/16 antes: 2004/04/18

Significado: Mensagens enviadas entre 16 de abril de 2004 e 18 de abril de 2004. *

* Mais precisamente: mensagens enviadas depois das 00:00 (ou 00:00) de 16 de abril de 2004 e antes de 18 de abril de 2004.

oncifer
fonte

Respostas:

10

Os horários específicos são mencionados na documentação para mostrar que o operador "depois" inclui a data especificada, enquanto o operador "antes" é exclusivo da data. Não há como usar a caixa de pesquisa em um período mais específico.

Se você estiver usando scripts do Google Apps, poderá fazer sua pesquisa usando as melhores datas que tiver. Em seguida, você pode filtrar os threads resultantes com base no tempo e em outros critérios. Exemplo:

var threads = GmailApp.search("after:2014/09/01 before:2014/09/02",0,100);
var timeFrom = new Date("2014/09/01 10:00:00").getTime();
var timeTo = new Date("2014/09/01 13:00:00").getTime();

for (var i = 0; i < threads.length; i++){
  var timeThreadStart = threads[i].getFirstMessageDate().getTime();

  if(timeThreadStart > timeFrom && timeThreadStart < timeTo){
    //do something
  }
}
Pyrodogg
fonte
NOTA: O operador "depois" inclui a data indicada, enquanto o operador "antes" é exclusivo da data !!
Habeeb Perwad
Oi Pyrodogg, posso participar com use label? GmailApp.search
Pathic
Se entendi sua pergunta corretamente, sim, você também pode usar marcadores nos critérios de pesquisa. Ex. "depois: 01/01/2019 antes: 01/02 2019 etiqueta: compras". Se não entendi sua pergunta, entre em contato.
Pyrodogg
8

É possível especificar o intervalo de tempo com precisão de até um segundo, porque os operadores de pesquisa após :, antes :, mais recentes :, mais antigos: aceitam os carimbos de hora do Unix . Usando uma ferramenta como o Epoch Converter , você pode descobrir que

  • 04-10-2014 às 15:00 (usando GMT por exemplo) tem o carimbo de data / hora 1412434800
  • Adicione duas horas (7200 segundos) ou use a mesma ferramenta novamente: 1412442000

A pesquisa after:1412434800 before:1412442000retornará as mensagens dentro desse intervalo de 2 horas.

Como converter para o tempo Unix parece uma tarefa árdua, criei um bookmarklet que substitui essa substituição.

Por exemplo, depois de digitar

depois: 26/07/2015 10:00 antes: 27/07/2015 11:30

na caixa de pesquisa (que não funcionaria como está), chame o bookmarklet e a string será substituída por

Depois: 1437919200 Antes: 1438011000

(O bookmarklet interpreta os carimbos de data e hora especificados no horário local.)

A página que vinculei tem a fonte e um link arrastável com o bookmarklet. Para completar, o código-fonte também é publicado abaixo.

inp = document.querySelectorAll('input');
for (i in inp) {
  if (/(after|before|newer|older):/.test(inp[i].value)) {
    str = inp[i].value;
    times = str.match(/\d[\d\/: ]*\d/g);
    for (j in times) {
      if (Date.parse(times[j])) {
        str = str.replace(times[j], Date.parse(times[j])/1000);
      }
    }
    inp[i].value = str;
  } 
}

fonte
Parece que after:UNIXTIMESTAMPnão está funcionando corretamente ...
Kunok
@Kunok parece funcionar para mim. você poderia por favor elaborar?
nakhli
1
@nakhli Ugh..isso é velho. Mas, tanto quanto me lembro, acho que dei muitos int chars como entrada. Eu acho que tive que remover os três últimos dígitos ou algo assim. De alguma forma, como esta resposta acima menciona, observe o exemplo na resposta, ela possui 10 caracteres, enquanto Date.now()retornaria 13 caracteres. Algo parecido. Eu o corrigi e o script funciona desde então, ainda está funcionando de 0 a 24 nos últimos 12 meses e provavelmente vai durar muito tempo. Obrigado. : P
Kunok
13 caracteres porque ele retorna milissegundos
Shiplu Mokaddim