É possível criar um filtro do Gmail que funcione em cabeçalhos diferentes de De, Para, Assunto?

105

Encaminhei um dos meus endereços de e-mail realmente antigos para o Gmail. Eu gostaria de criar um filtro para que qualquer email para esse endereço antigo seja sempre rotulado corretamente no Gmail.

Posso criar um filtro do Gmail com o "Para:" que contém esse endereço, mas que não captura todos os emails nesse endereço, apenas os que são explicitamente endereçados. Freqüentemente, há spam onde outra pessoa é o destinatário explícito, e meu endereço antigo era simplesmente Bcc'd. O filtro "Para:" não funciona.

O que eu gostaria de fazer é filtrar no cabeçalho "Delivered-To:". Isso é possível no Gmail ou estou preso às três opções padrão de De, Para, Assunto?

Chris W. Rea
fonte

Respostas:

68

Sim, você pode filtrar por entregue a. Basta criar um novo filtro com deliveredto:[email protected]no has the wordscampo.

mvime
fonte
Não é muito intuitivo, mas sim. Eu acho que a maioria to:deveria deliveredto:, na verdade, apoiar os BCCs.
lapo 2/04/12
Isso também funcionou com caracteres curinga, por exemplo, usando um endereço de e - mail genérico deliveredto:*@mydomain.com? Estou tentando, mas levará tempo para testar.
Marcos
1
Observe que você pode usar a barra de pesquisa na parte superior do GMail para construir sua pesquisa avançada, clique na seta no final da barra de pesquisa e selecione "Criar filtro com esta pesquisa".
Feckmore #
2
Isso não resolve o problema para cabeçalhos que não sejam Delivered-To? (Diga uma pesquisa para a Auto-submetido ou cabeçalhos de precedência)
Gert van den Berg
2
É bastante desagradável que o texto do cabeçalho seja "Delivered-To:", enquanto o campo "has" elimine o '-' para produzir "deliverto:".
James Bowery
36

Aqui está uma lista de todos os operadores avançados:

de:
para:
assunto:
OR
- (hífen)
label:
has: anexo
list:
filename:
"" (quotes)
()
in:
em qualquer lugar dentro: inbox
in: lixeira
in: spam
is: important
is: starred
is: unread
is: A leitura
tem: estrela amarela tem: estrela
vermelha tem: estrela
laranja tem: estrela
verde tem: estrela
azul
tem: estrela roxa
tem: estrela vermelha tem: red-bang
tem: laranja-guillemet
tem: yellow-bang
tem: verde- cheque
possui: blue-info
has: purple-question
cc:
cco:
após:
antes:
mais antigo:
mais recente:
mais_versão: mais
recente:
é: bate-papo
entregue:
círculo:
tem:
categoria de círculo :
tamanho:
maior:
menor:
+ (sinal de mais)
rfc822msgid:
has: userlabels
has: nouserlabels

[ fonte ]

Jared Updike
fonte
Obrigado. Até mesmo suas páginas tornam difícil determinar se um operador NOT -iria trabalhar em endereços curinga, por exemplo: -*@mydomain.comno To:campo
Marcos
31
  1. acesse https://script.google.com e crie um novo script do Google Apps

novo script do Google Apps.

  1. selecione a opção "Criar script para o Gmail"

    • isso criará um projeto de script
    • isso criará um script chamado Code.gs
    • isso criará funções de amostra, uma delas chamada processInbox
  2. salve o projeto

  3. personalize o script e teste-o até ficar satisfeito
  4. encontre o botão "gatilhos do projeto personalizado"

    botão de disparo personalizado

    • isso permitirá que você execute o script em um cronômetro (por exemplo, diariamente ou a cada minuto )

Exemplo:

processInbox

Esta função irá percorrer todas as mensagens na caixa de entrada.

function processInbox() {
   // process all recent threads in the Inbox (see comment to this answer)
   var threads = GmailApp.search("newer_than:1h");
   for (var i = 0; i < threads.length; i++) {
      // get all messages in a given thread
      var messages = threads[i].getMessages();
      for (var j = 0; j < messages.length; j++) {
         var message = messages[j];
         processMessage(message);
      }
   }
}

Dê um passo adiante e ligue GmailApp.search()se quiser fazer algo sofisticado em vez de GmailApp.getInboxThreads().

processMessage

Esta função cuidará do processamento de uma única mensagem; você obtém o conteúdo bruto getRawContent()e tenta encontrar o cabeçalho lá, se ele estiver lá, marque a mensagem.

function processMessage(message) {
  var body = message.getRawContent();
  if (body.indexOf("X-Custom-Header: some-custom-value") > -1) {
    // do stuff with message (e.g. add label)
  }
}
dnozay
fonte
11
Minha reação intestinal não comprovada é que o Google terá algo para impedir que os usuários percorram shows que valem a pena a cada minuto. Portanto, aconselho a substituir "var threads = GmailApp.getInboxThreads ();" com "var threads = GmailApp.search (" newer_than: 1h ");"
31415 Rick
Eu estou usando var MyEmails = GmailApp.search("is:unread in:inbox");a fim de pesquisar todo o e-mail na caixa de entrada que ainda não são lidos
Ronen Ariely
@ Rick - eu escrevi um script que usa a interface IMAP para percorrer todos os 13 GB na minha conta do Gmail. 'Não me surpreenderia se script.google.com permitisse.
broofa 23/08/19
1

Você pode usar o deliveredto:operador no Has the wordscampo ao criar um filtro, como @mvime indicado. No entanto, nem todos os provedores de e-mail anexar Delivered-toao cabeçalho de e-mail, por isso uma maneira mais confiável é de transmitir [email protected]a [email protected], e filtrar por deliveredto:([email protected]).

Peng Bai
fonte