Rechercher des e-mails appartenant UNIQUEMENT à l'étiquette spécifiée

14

Comment rechercher les e-mails qui n'appartiennent qu'à un libellé spécifié et n'appartiennent à aucun autre libellé.

Midhat
la source
malheureusement, il n'y a pas de drapeau exclusif qui suce vraiment .. spécifiquement, je veux trouver tous les e-mails qui sont dans label: web et UNIQUEMENT dans cette étiquette ... aucune façon de le faire pour le moment en plus d'ajouter -label: other_label -label: another_label et la liste continue ... pour les pirates parmi vous - oui, prenez une liste plate de vos étiquettes et écrivez un script simple pour générer la commande dont vous avez besoin ...
Nir Pengas

Réponses:

9

Vous pouvez rechercher des e-mails appartenant à une étiquette spécifique à l'aide du

label:mylabel <include search terms here>

et vous pouvez exclure des messages d'une étiquette spécifique à l'aide de la

-label:mylabel <include search terms here>

syntaxe.

Donc, ce que vous voulez peut être accompli en utilisant une combinaison des deux. Vous devez composer une chaîne de recherche contenant un "-label: mylabel" pour toutes les étiquettes que vous avez définies, à l'exception de celle que vous recherchez, comme ceci:

label:thisisthelabelimlookingfor -label:label1 -label:label2 ... <include search terms here>
fretje
la source
3
oui, je pensais sur les mêmes lignes, mais j'ai pensé qu'il y avait peut-être une meilleure façon, avec beaucoup moins de frappe. J'ai environ 100 étiquettes définies :(
Midhat
puis-je obtenir une simple liste en texte brut de toutes mes étiquettes?
Midhat
@Midhat: Bonne question. Vous pouvez accéder à votre compte en utilisant imap et obtenir une liste de toutes vos étiquettes, comme indiqué dans cette réponse à une question de stackoverflow . Mais il pourrait y avoir de meilleures façons.
fretje
J'ai obtenu ma liste d'étiquettes en texte brut à partir des options Gmail hors connexion. il répertorie toutes les étiquettes, séparées par des virgules.
Midhat
De plus, l'opérateur -label n'a pas fonctionné pour moi
Midhat
2

Ce n'est pas la meilleure façon au monde, mais utilisez les étiquettes intégrées à votre avantage. Cela suppose que vous ne vous souciez pas des étiquettes que GMail applique, comme les réseaux sociaux, les mises à jour, les promotions ou les forums. Ces étiquettes ne sont pas considérées comme des ÉTIQUETTES UTILISATEUR (Mon exemple d'étiquette utilisateur: Foo)

  1. accédez à Tous les messages - Sélectionnez Tous les messages, puis sélectionnez «Sélectionner tous les messages XXX dans tous les messages» (s'applique à chaque e-mail que vous avez)
  2. utilisez le menu des étiquettes pour désélectionner l'une des étiquettes GMail (ci-dessus). J'utilise habituellement des promotions.
  3. allez sur le label que vous souhaitez rechercher (Foo)
  4. Sélectionnez Tout, puis 'Sélectionner tous les messages XXX dans (Foo)'
  5. utilisez le menu d'étiquette pour sélectionner l'étiquette GMail effacée de l'étape 2 (Promotions) - et pour désélectionner l'étiquette actuelle (Foo)
  6. vous avez maintenant tous vos messages étiquetés (Foo), changés en étiquette (Promotions) - une étiquette qui n'est PAS une étiquette d'utilisateur
  7. aller à (Promotions) - ajouter à la recherche: 'has: nouserlabels'
  8. vous avez maintenant une liste d'e-mails qui étaient auparavant uniquement étiquetés comme (Foo)
  9. allez dans (Promotions) - sélectionnez Tout puis 'Sélectionnez tous les messages XXX dans (Promotions)'
  10. utilisez le menu des libellés pour ajouter (Foo) à tous les messages. Tout est de retour à la normale
Bob
la source
0

Lors du filtrage des messages dans gmail, ils sont configurés par défaut en mode conversation. Le paramètre d'affichage de la conversation regroupe les e-mails ayant le même sujet en un seul message basé sur une conversation.

Ainsi, lorsque vous sélectionnez ou parcourez les messages filtrés, vous verrez plusieurs étiquettes sur les messages qui ne correspondent pas à vos critères spécifiés.

Qui s'affiche comme:

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

Pour résoudre ce problème, accédez à Settings -> General -> Conversation viewSélectionner Conversation View Off, puis cliquez sur Enregistrer les modifications. Une fois la page actualisée, toutes les conversations seront divisées en messages individuels.

Qui apparaîtra maintenant comme:

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

Pour la plupart des cas, cela devrait être suffisant pour filtrer les messages par une seule étiquette.

Cela a également pour effet négatif de dissocier les e-mails transférés et les e-mails de réponse en messages individuels.

Cependant, le paramètre peut être librement modifié sans perdre les groupes de conversation, lorsque la vue de conversation est réactivée.


Quant à la recherche avec les filtres; l'un des problèmes concerne les modificateurs de AND / OR dans le contexte des valeurs.

  • Pour spécifier OU dans un groupe de valeurs, vous utilisez des accolades: {a b}
    • Se traduit par: a OR b.
  • Pour spécifier ET dans un groupe de valeurs, vous utilisez des parenthèses (a b)
    • Se traduit par: a AND b.
  • Pour spécifier un opérateur NOT sur une valeur, vous utilisez le symbole moins -a
    • Se traduit par: NOT a.

Cela vous permet de les utiliser en combinaison avec d' autres opérateurs comme label:, from:, to:etc.

Une liste des opérateurs et des modificateurs disponibles dans gmail est disponible sur leur site Web https://support.google.com/mail/answer/7190

En général, un filtre comme label:a -label:x -label:yse traduirait par Has label a and does not have label x and y.

Cela signifie que les messages portant le libellé a et manquant soit le libellé x ou y seront trouvés:

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>

Pour filtrer un groupe d'étiquettes, vous devez utiliser un filtre comme: label:{x y z}pour inclure le message qui a les étiquettes x, you z.

Pour exclure un groupe d'étiquettes, vous devez utiliser un filtre comme: -{label:{a b c}}pour exclure tous les messages qui ont les étiquettes a, bou c.

Pour combiner les filtres , il ressemblerait à ceci: label:{x y z} -{label:{a b c}}.

Ce qui se traduit par: Has labels x, y, or z AND does NOT have labels a, b, or c

Vous pouvez également combiner des groupements NOT avec des opérateurs supplémentaires tels que: -{label:{a b} from:{domain.com}}ce qui se traduit pardoes NOT have labels a OR b OR from domain.com

Consideration spéciale; lors de la recherche de valeurs contenant des espaces, encapsulez la valeur entre guillemets "..."pour garantir une correspondance exacte. Sinon, il considérera le ou les espaces comme un modificateur ANDou ORselon le contexte de regroupement (utilisation de crochets ou de parenthèses).

Comme ça: label:{My Label}devrait l'être label:{"My Label"}.


Donc, pour répondre à la question d'origine pour trouver des messages qui ne contiennent qu'une seule étiquette My Labelet aucune autre, vous utiliseriez: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>

Malheureusement, vous devrez définir explicitement toutes les étiquettes exclues, car il n'y a pas d'opérateur pour spécifier uniquement une étiquette. N'oubliez pas que vous souhaiterez désactiver la vue de conversation pour empêcher le regroupement des messages qui contiennent également les étiquettes exclues.

fyrye
la source