È possibile creare un filtro Gmail che funziona su intestazioni diverse da Da, A, Oggetto?


105

Ho inoltrato uno dei miei indirizzi email molto vecchi a Gmail. Vorrei creare un filtro in modo che ogni posta a quel vecchio indirizzo sia sempre etichettata correttamente in Gmail.

Posso creare un filtro Gmail con "A:" che contiene quell'indirizzo, ma che non cattura tutte le mail a quell'indirizzo, solo quelle che sono indirizzate esplicitamente. Spesso c'è spam in cui qualcun altro è il destinatario esplicito e il mio vecchio indirizzo era semplicemente Ccn. Il filtro "A:" non funziona.

Quello che mi piace fare è filtro sul "Delivered-To:" intestazione. È possibile con Gmail o sono bloccato con le tre opzioni standard di Da, A, Oggetto?


Risposte:


68

Sì, puoi filtrare per consegna. Basta creare un nuovo filtro con deliveredto:youremail@address.comnel has the wordscampo.


Non molto intuitivo, ma sì. Penso che la maggior parte to:dovrebbe essere in deliveredto:realtà, per supportare i CCB.
lapo,

Ha funzionato anche con i caratteri jolly, ad esempio utilizzando un indirizzo e - mail generico deliveredto:*@mydomain.com? Lo sto provando ma ci vorrà del tempo per testarlo.
Marcos,

1
Nota che puoi usare la barra di ricerca nella parte superiore di GMail per costruire la tua ricerca avanzata, quindi fai clic sulla freccia alla fine della barra di ricerca e seleziona "Crea filtro con questa ricerca".
Feckmore,

2
Questo non risolve il problema per le intestazioni diverse da Delivered-To? (Pronuncia una ricerca per le intestazioni presentate automaticamente o precedenti)
Gert van den Berg,

2
È piuttosto odioso che il testo dell'intestazione sia "Delivered-To:" mentre il campo "has" elimina il "-" per produrre "deliverto:".
James Bowery,

36

Ecco un elenco di tutti gli operatori avanzati:

da:
a:
oggetto:
OPPURE
-
etichetta (trattino) :
ha:
elenco allegati :
nome file:
"" (virgolette)
()
in: dovunque
in: casella
di posta in: cestino
in: spam
è: importante
è: speciale
è: non letto
è: leggi
ha: stella gialla
ha: stella rossa
ha: stella arancione ha: stella
verde ha: stella
blu
ha: stella viola
ha: rosso-bang
ha: arancio-guillemet
ha: giallo-bang
ha: verde- verifica
ha: blue-info
ha: purple-question
cc:
bcc:
dopo:
prima:
più vecchio:
più nuovo : più vecchio: più
nuovo:
più:
è: chat
consegnato a:
cerchia:
ha:
categoria cerchia :
dimensione:
più grande:
più piccolo:
+ (segno più)
rfc822msgid:
ha: userlabels
ha: nouserlabels

[ fonte ]


Grazie. Anche le loro pagine rendono difficile determinare se un operatore NOT -lavorerebbe su indirizzi jolly, ad esempio: -*@mydomain.comsul To:campo
Marcos

31
  1. vai su https://script.google.com e crea un nuovo script di Google Apps

nuovo script di Google Apps.

  1. seleziona l'opzione "Crea script per Gmail"

    • questo creerà un progetto di script
    • questo creerà uno script chiamato Code.gs
    • questo creerà funzioni di esempio, una delle quali nominate processInbox
  2. salva il progetto

  3. personalizzare lo script e testarlo fino a quando non si è soddisfatti
  4. trova il pulsante "trigger del progetto personalizzato"

    pulsante di attivazione personalizzato

    • questo ti consentirà di eseguire lo script su un timer (ad esempio ogni giorno o ogni minuto )

Esempio:

processInbox

Questa funzione eseguirà l'iterazione su tutti i messaggi nella Posta in arrivo.

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);
      }
   }
}

Fai un ulteriore passo e chiama GmailApp.search()se vuoi fare qualcosa di fantasia invece di GmailApp.getInboxThreads().

ProcessMessage

Questa funzione si occuperà dell'elaborazione di un singolo messaggio; ottieni il contenuto non elaborato getRawContent()e provi a trovare la tua intestazione lì, se è lì, tagga il messaggio.

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)
  }
}

11
La mia reazione viscerale non dimostrata è che Google avrà qualcosa in atto per impedire agli utenti di passare in rassegna concerti di contenuti e-mail non elaborati ogni minuto. Quindi consiglierei di sostituire "var thread = GmailApp.getInboxThreads ();" con "var thread = GmailApp.search (" newer_than: 1h ");"
Rick,

Sto usando var MyEmails = GmailApp.search("is:unread in:inbox");per cercare tutte le e-mail nella posta in arrivo che non sono ancora state lette
Ronen Ariely

@Rick - Ho scritto uno script che utilizza l'interfaccia IMAP per scorrere tutti i 13 + GB nel mio account Gmail. "Non mi sorprenderebbe se script.google.com lo consentisse.
broofa,

1

È possibile utilizzare l' deliveredto:operatore nel Has the wordscampo durante la creazione di un filtro, come indicato da @mvime. Tuttavia, non tutti i provider di posta elettronica aggiungono Delivered-toall'intestazione e-mail, quindi un modo più affidabile è quello di trasmettere you@oldemail.coma you+oldemail@gmail.com, e filtrare in base deliveredto:(you+oldemail@gmail.com).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.