Wyszukaj wiadomości e-mail należące TYLKO do określonej etykiety

14

Jak wyszukiwać e-maile, które należą tylko do określonej etykiety i nie należą do żadnej innej etykiety.

Midhat
źródło
niestety nie ma wyłącznej flagi, która naprawdę jest do bani .. szczególnie chcę znaleźć wszystkie e-maile, które są w etykiecie: web i TYLKO w tej etykiecie ... w tej chwili nie ma takiego sposobu oprócz dodania -label: other_label -label: kolejna etykieta i lista jest długa ... dla hakerów wśród was - tak, weź płaską listę swoich etykiet i napisz prosty skrypt, aby wygenerować potrzebne polecenie ...
Nir Pengas

Odpowiedzi:

9

Możesz wyszukiwać wiadomości e-mail należące do określonej etykiety za pomocą

label:mylabel <include search terms here>

składni i możesz wykluczyć wiadomości z określonej etykiety za pomocą

-label:mylabel <include search terms here>

składnia.

Tak więc, czego chcesz, możesz osiągnąć za pomocą kombinacji obu tych elementów. Musisz utworzyć ciąg wyszukiwania zawierający „-label: mylabel” dla wszystkich zdefiniowanych przez Ciebie etykiet, z wyjątkiem tej, której szukasz, w następujący sposób:

label:thisisthelabelimlookingfor -label:label1 -label:label2 ... <include search terms here>
fretje
źródło
3
tak, myślałem o tych samych liniach, ale pomyślałem, że może być lepszy sposób, z dużo mniejszym pisaniem. Mam około 100 zdefiniowanych etykiet :(
Midhat
czy mogę po prostu uzyskać prostą listę wszystkich moich etykiet w postaci zwykłego tekstu?
Midhat
@Midhat: Dobre pytanie. Możesz uzyskać dostęp do swojego konta za pomocą programu imap i uzyskać listę wszystkich swoich etykiet, jak pokazano w tej odpowiedzi na pytanie dotyczące przepływu stosu . Ale mogą być lepsze sposoby.
fretje
Mam listę etykiet tekstowych z opcji Gmaila offline. zawiera wszystkie etykiety, rozdzielone przecinkami.
Midhat
Również operator -label nie działał dla mnie
Midhat
2

Nie jest to najlepszy sposób na świecie, ale skorzystaj z wbudowanych etykiet na swoją korzyść. Zakłada się, że nie obchodzą Cię etykiety stosowane przez Gmaila, takie jak Społecznościowe, Aktualizacje, Promocje lub Fora. Te etykiety nie są uważane za ETYKIETY UŻYTKOWNIKA (Moja przykładowa etykieta użytkownika: Foo)

  1. przejdź do Wszystkie wiadomości - wybierz Wszystkie wiadomości, a następnie wybierz „Wybierz wszystkie wiadomości XXX we wszystkich wiadomościach” (stosuje się do każdej posiadanej wiadomości e-mail)
  2. użyj menu etykiet, aby odznaczyć jedną z etykiet Gmaila (powyżej). Zwykle korzystam z promocji.
  3. przejdź do etykiety, którą chcesz wyszukać (Foo)
  4. Wybierz Wszystkie, a następnie „Wybierz wszystkie wiadomości XXX w (Foo)”
  5. użyj menu etykiet, aby wybrać wyczyszczoną etykietę Gmaila z kroku 2 (Promocje) - i odznaczyć bieżącą etykietę (Foo)
  6. teraz masz wszystkie wiadomości oznaczone etykietą (Foo), zmienione na etykietę (Promocje) - etykietę, która NIE jest etykietą użytkownika
  7. przejdź do (Promocje) - dodaj do wyszukiwania: 'has: nouserlabels'
  8. teraz masz listę e-maili, które kiedyś były TYLKO oznaczone jako (Foo)
  9. przejdź do (Promocje) - wybierz Wszystkie, a następnie „Wybierz wszystkie wiadomości XXX w (Promocje)”
  10. użyj menu etykiet, aby dodać (Foo) do wszystkich wiadomości. Wszystko wróciło do normy
Kok
źródło
0

Podczas filtrowania wiadomości w Gmailu są one domyślnie konfigurowane w widoku konwersacji. Ustawienie widoku konwersacji grupuje wiadomości e-mail o tym samym temacie jako jedną wiadomość opartą na konwersacji.

Tak więc podczas wybierania lub przeglądania odfiltrowanych wiadomości zobaczysz wiele etykiet na wiadomościach, które nie są zgodne z określonymi kryteriami.

Który jest wyświetlany jako:

Subject: Hello World (2) <label:a> <label:b>
    Message 1 <label:a>
    Message 2 <label:b>

Aby to naprawić, przejdź do Settings -> General -> Conversation viewWybierz, Conversation View Offa następnie kliknij Zapisz zmiany. Gdy strona zostanie odświeżona, wszystkie rozmowy zostaną podzielone na pojedyncze wiadomości.

Które będą teraz wyświetlane jako:

Subject: Hello World <label:a>
Subject: Hello World <label:b>

W większości przypadków powinno to wystarczyć do filtrowania wiadomości według pojedynczej etykiety.

Ma to również negatywny wpływ na rozgrupowanie przekazanych wiadomości e-mail i odpowiedzi na poszczególne wiadomości.

Jednak ustawienie można dowolnie zmieniać bez utraty grup konwersacji, gdy widok konwersacji zostanie ponownie włączony.


Jeśli chodzi o wyszukiwanie za pomocą filtrów; jednym z problemów są modyfikatory AND / OR w kontekście wartości.

  • Aby określić LUB w grupie wartości, użyj nawiasów klamrowych: {a b}
    • Przekłada się na: a OR b.
  • Aby określić AND w grupie wartości, użyj nawiasów (a b)
    • Przekłada się na: a AND b.
  • Aby określić operator NOT dla wartości, użyj symbolu minus -a
    • Przekłada się na: NOT a.

Dzięki temu można je stosować w połączeniu z innymi podmiotami podoba label:, from:, to:itd.

Listę operatorów i modyfikatorów dostępnych w Gmailu można znaleźć na ich stronie internetowej https://support.google.com/mail/answer/7190

Zasadniczo taki filtr label:a -label:x -label:ymógłby się tłumaczyć Has label a and does not have label x and y.

Oznacza to, że zostaną znalezione wiadomości, które mają etykietę a i brakuje jej etykiety x lub y:

Found: 
    Subject: Hello World <label:a>
    Subject: Hello World <label:a> <label:x> 
    Subject: Hello World <label:a> <label:y>

Not Found:
    Subject: Hello World <label:a> <label:x> <label:y>

Aby filtrować grupę etykiet trzeba by użyć filtru jak: label:{x y z}obejmować wiadomość, że mają etykiety x, ylub z.

Aby wykluczyć grupę etykiet, należy użyć filtru jak: -{label:{a b c}}aby wykluczyć wszystkie wiadomości, które mają etykiety a, balbo c.

Aby połączyć filtry to będzie wyglądać następująco: label:{x y z} -{label:{a b c}}.

Co przekłada się na: Has labels x, y, or z AND does NOT have labels a, b, or c

Możesz także łączyć grupy NIE z dodatkowymi operatorami, takimi jak: -{label:{a b} from:{domain.com}}co tłumaczydoes NOT have labels a OR b OR from domain.com

Szczególną uwagę; podczas wyszukiwania wartości zawierających spacje zawiń wartość w cudzysłowie, "..."aby zapewnić dokładne dopasowanie. W przeciwnym razie będzie traktować spacje jako ANDlub ORmodyfikator w zależności od kontekstu grupowania (użycie nawiasów klamrowych lub nawiasów).

Tak jak label:{My Label}powinno być label:{"My Label"}.


Aby odpowiedzieć na pierwotne pytanie, aby znaleźć wiadomości zawierające tylko jedną etykietę My Labeli żadnych innych, użyj:label:"My Label" -{label:{"label 2" "label 3"}}

Found:
   Subject: Hello World <label:My Label>

Not Found:
   Subject: Hello World <label:label 2>
   Subject: Hello World <label:label 3>
   Subject: Hello World <label:My Label> <label:label 2>
   Subject: Hello World <label:My Label> <label:label 3>
   Subject: Hello World <label:My Label> <label:label 2> <label:label 3>

Niestety musisz jawnie zdefiniować wszystkie wykluczone etykiety, ponieważ nie ma operatora, który określiłby tylko etykietę. Pamiętaj, że chcesz wyłączyć widok konwersacji, aby zapobiec grupowaniu wiadomości zawierających również wykluczone etykiety.

fyrye
źródło