Ist es möglich, einen Google Mail-Filter zu erstellen, der für andere Header als Von, Bis, Betreff funktioniert?


105

Ich habe eine meiner alten E-Mail-Adressen an Google Mail weitergeleitet. Ich möchte einen Filter erstellen, damit alle E-Mails an diese alte Adresse in Google Mail immer richtig gekennzeichnet werden.

Ich kann einen Google Mail - Filter mit der „An:“ erstellen enthält diese Adresse, aber das nicht fängt alle Mails an diese Adresse, nur diejenigen , die explizit angesprochen werden. Oft gibt es Spam, bei dem jemand anderes der explizite Empfänger ist, und meine alte Adresse war einfach Bcc'd. Der Filter "An:" funktioniert nicht.

Was ich würde gerne tun Filter auf dem „Delivered-To:“ Header. Ist das mit Google Mail möglich oder stecke ich bei den drei Standardoptionen Von, Bis, Betreff fest?


Antworten:


68

Ja, Sie können nach "geliefert an" filtern. Erstellen Sie einfach einen neuen Filter mit deliveredto:youremail@address.comim has the wordsFeld.


Nicht sehr intuitiv, aber ja. Ich denke die meisten to:sollten deliveredto:eigentlich BCCs unterstützen.
Lapo

Hat dies auch mit Platzhaltern funktioniert, zum Beispiel mit einer Catch-All-E-Mail- Adresse in deliveredto:*@mydomain.com? Ich versuche es, aber es wird einige Zeit dauern, es zu testen.
Marcos

1
Beachten Sie, dass Sie die Suchleiste oben in GMail verwenden können, um Ihre erweiterte Suche zu erstellen. Klicken Sie dann auf den Pfeil am Ende der Suchleiste und wählen Sie "Filter mit dieser Suche erstellen".
Feckmore

2
Dies löst nicht das Problem für andere Header als Delivered-To? (Sagen Sie eine Suche nach den automatisch gesendeten oder Vorrang-Headern)
Gert van den Berg

2
Es ist ziemlich unangenehm, dass der Kopfzeilentext "Delivered-To:" lautet, während das Feld "has" das "-" entfernt, um "deliveredto:" zu ergeben.
James Bowery

36

Hier ist eine Liste aller fortgeschrittenen Operatoren:

von:
bis:
Betreff:
ODER
- (Bindestrich)
Label:
hat: Anhang
Liste:
Dateiname:
"" (Anführungszeichen)
()
in: überall
in: Posteingang
in: Papierkorb
in: Spam
ist: wichtig
ist: markiert
ist: ungelesen
ist: gelesen
hat: gelb-stern
hat: rot-stern
hat: orange-stern
hat: grün-stern
hat: blau-stern
hat: lila-stern
hat: rot-knall
hat: orange-guillemet
hat: gelb-knall
hat: grün- check
hat: blue-info
hat: purple-question
cc:
bcc:
nach:
vor:
älter:
neuer:
older_than:
newer_than:
ist: chat
deliveredto:
Kreis:
hat: Kreis
Kategorie:
Größe:
größer:
kleiner:
+ (Pluszeichen)
rfc822msgid:
hat: userlabels
hat: nouserlabels

[ Quelle ]


Vielen Dank. Auch ihre Seiten machen es schwierig , zu bestimmen , ob ein NOT - Operator -auf Wildcard - Adressen funktionieren würde, zum Beispiel: -*@mydomain.comim To:Feld
Marcos

31
  1. Gehen Sie zu https://script.google.com und erstellen Sie ein neues Google Apps-Skript

neues Google Apps-Skript.

  1. Wählen Sie die Option "Skript für Google Mail erstellen"

    • Dadurch wird ein Skriptprojekt erstellt
    • Dadurch wird ein Skript namens erstellt Code.gs
    • Dadurch werden Beispielfunktionen erstellt, von denen eine benannt wird processInbox
  2. Speichern Sie das Projekt

  3. Passen Sie das Skript an und testen Sie es, bis Sie zufrieden sind
  4. Finden Sie die Schaltfläche "Trigger des benutzerdefinierten Projekts"

    benutzerdefinierte Trigger-Taste

    • Auf diese Weise können Sie das Skript auf einem Timer ausführen (z. B. täglich oder jede Minute ).

Beispiel:

processInbox

Diese Funktion durchläuft alle Nachrichten im Posteingang.

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

Gehen Sie noch einen Schritt weiter und rufen GmailApp.search()Sie an, wenn Sie stattdessen etwas Besonderes tun möchten GmailApp.getInboxThreads().

processMessage

Diese Funktion kümmert sich um die Verarbeitung einer einzelnen Nachricht. Sie erhalten den Rohinhalt mit getRawContent()und versuchen, Ihren Header dort zu finden. Wenn er dort enthalten ist, markieren Sie die Nachricht.

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
Meine unbewiesene Reaktion ist, dass Google etwas an der richtigen Stelle hat, um zu verhindern, dass Nutzer jede Minute Gigs mit rohem E-Mail-Inhalt durchlaufen. Daher würde ich empfehlen, "var threads = GmailApp.getInboxThreads ();" zu ersetzen. mit "var threads = GmailApp.search (" newer_than: 1h ");"
Rick

Ich benutze var MyEmails = GmailApp.search("is:unread in:inbox");, um alle E-Mails im Posteingang zu durchsuchen, die noch nicht gelesen wurden
Ronen Ariely

@Rick - Ich habe ein Skript geschrieben, das die IMAP-Oberfläche verwendet, um alle 13 + GB in meinem Google Mail-Konto zu durchsuchen. 'Würde mich nicht wundern, wenn script.google.com dies zulässt.
Broofa

1

Sie können den deliveredto:Operator im Has the wordsFeld verwenden, wenn Sie einen Filter erstellen, wie in @mvime angegeben. Allerdings ist nicht alle E - Mail - Provider anhänge Delivered-toan den E - Mail - Header, so dass eine zuverlässige Art und Weise zu übermitteln ist you@oldemail.comzu you+oldemail@gmail.comund filtert deliveredto:(you+oldemail@gmail.com).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.