Czy można utworzyć filtr Gmaila, który działa na nagłówkach innych niż Od, Do, Temat?

105

Przesłałem jeden z moich naprawdę starych adresów e-mail do Gmaila. Chciałbym utworzyć filtr, aby każda poczta na ten stary adres była zawsze poprawnie oznakowana w Gmailu.

Mogę utworzyć filtr Gmaila za pomocą „Do:” zawierającego ten adres, ale nie przechwytuje on wszystkich wiadomości e-mail na ten adres, tylko te, które są wyraźnie zaadresowane. Często jest spam, w którym ktoś inny jest jawnym odbiorcą, a mój stary adres był po prostu Bcc'd. Filtr „Do:” nie działa.

Co ja lubię robić to filtr na „Delivered-To:” cel. Czy jest to możliwe w Gmailu, czy też trzymam się trzech standardowych opcji Od, Do, Temat?

Chris W. Rea
źródło
Powiązane: Utwórz filtr Gmaila dla powiadomień kalendarza
Nowa Aleksandria,

Odpowiedzi:

68

Tak, możesz filtrować według dostarczonych do. Wystarczy utworzyć nowy filtr deliveredto:[email protected]w has the wordspolu.

mvime
źródło
Niezbyt intuicyjne, ale tak. Myślę, że większość to:powinna być w deliveredto:rzeczywistości, aby wspierać BCC.
Lapo
Czy działało to również z symbolami wieloznacznymi, na przykład przy użyciu adresu e - mail typu catch-alldeliveredto:*@mydomain.com ? Próbuję, ale przetestowanie zajmie trochę czasu.
Marcos,
1
Pamiętaj, że możesz użyć paska wyszukiwania u góry Gmaila, aby skonstruować wyszukiwanie zaawansowane, a następnie kliknij strzałkę na końcu paska wyszukiwania i wybierz „Utwórz filtr za pomocą tego wyszukiwania”.
Feckmore,
2
To nie rozwiązuje problemu dla nagłówków innych niż Dostarczone do? (Powiedz wyszukiwanie nagłówków automatycznie przesyłanych lub pierwszeństwa)
Gert van den Berg,
2
Całkiem nieznośne jest to, że tekst nagłówka to „Dostarczono do:”, podczas gdy pole „ma” eliminuje „-”, aby uzyskać „dostarczone do:”.
James Bowery,
36

Oto lista wszystkich zaawansowanych operatorów:

od:
do:
temat:
LUB
- (łącznik)
etykieta:
ma:
lista załączników :
nazwa pliku:
„” (cytaty)
()
w: gdziekolwiek
w: skrzynka odbiorcza
w: kosz
w: spam
jest: ważne
jest: oznaczone gwiazdką
: nieprzeczytane
to: przeczytał
ma: żółta gwiazda
ma: czerwoną gwiazdę
ma: pomarańczowa gwiazda
ma: zieloną gwiazdę
ma: niebieską gwiazdkę
ma: fioletową gwiazdę
ma: czerwoną huk
ma: pomarańczową gilemet
ma: żółtą huk
ma: zieloną check
has: blue-info
has: purple-question
cc:
bcc:
po:
przed:
starszym:
nowszym:
starszym_than:
nowszym_than:
jest: czat
dostarczony do:
krąg:
has: krąg
kategoria:
rozmiar:
większy:
mniejszy:
+ (znak plus)
rfc822msgid:
has: userlabels
has: nouserlabels

[ źródło ]

Jared Updike
źródło
Dzięki. Nawet ich strony utrudniają ustalenie, czy operator NOT -będzie działał na adresach symboli wieloznacznych, np .: -*@mydomain.comw To:terenie
Marcos
31
  1. przejdź na https://script.google.com i utwórz nowy skrypt Google Apps

nowy skrypt aplikacji Google.

  1. wybierz opcję „Utwórz skrypt dla Gmaila”

    • stworzy to projekt skryptu
    • spowoduje to utworzenie skryptu o nazwie Code.gs
    • stworzy to przykładowe funkcje, jedną z nich o nazwie processInbox
  2. zapisz projekt

  3. dostosuj skrypt i przetestuj go, aż będziesz zadowolony
  4. znajdź przycisk „wyzwalacze niestandardowego projektu”

    niestandardowy przycisk spustowy

    • pozwoli ci to uruchomić skrypt na zegarze (np. codziennie lub co minutę )

Przykład:

processInbox

Ta funkcja będzie iterować wszystkie wiadomości w skrzynce odbiorczej.

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

Idź o krok dalej i zadzwoń, GmailApp.search()jeśli chcesz zrobić coś wymyślnego zamiast GmailApp.getInboxThreads().

processMessage

Ta funkcja zajmie się przetwarzaniem pojedynczej wiadomości; dostajesz surową zawartość getRawContent()i spróbuj znaleźć tam swój nagłówek, jeśli tam jest, oznacz wiadomość.

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
źródło
11
Moja niesprawdzona reakcja brzucha jest taka, że ​​Google będzie miał coś, co powstrzyma użytkowników przed przeglądaniem treści surowych wiadomości e-mail co minutę. Dlatego radzę zastąpić „var thread = GmailApp.getInboxThreads ();” z „var thread = GmailApp.search („ newer_than: 1h ”);”
Rick
Używam var MyEmails = GmailApp.search("is:unread in:inbox");, aby przeszukiwać wszystkie wiadomości e-mail w skrzynce odbiorczej, które nie zostały jeszcze przeczytane
Ronen Ariely
@Rick - Napisałem skrypt, który używa interfejsu IMAP do przejścia przez wszystkie 13 GB na moim koncie Gmail. „Nie zaskoczyłoby mnie, gdyby skrypt.google.com na to zezwolił.
broofa
1

Możesz użyć deliveredto:operatora w Has the wordspolu podczas tworzenia filtra, jak wskazano @mvime. Jednak nie wszyscy dostawcy poczty dołączyć Delivered-todo nagłówka e-mail, więc bardziej niezawodny sposób jest do przekazania [email protected]do [email protected]i filtrować deliveredto:([email protected]).

Peng Bai
źródło