搜索仅属于指定标签的电子邮件


14

我如何搜索仅属于指定标签而不属于任何其他标签的电子邮件。


不幸的是,没有排他的标志确实很烂。.特别是我想查找label:web中的所有电子邮件,并且仅在该标签中...除了添加-label:other_label -label之外,目前尚无其他方法: another_label,列表继续存在……对于你们中间的黑客-是的,抓取标签的平面列表并编写一个简单的脚本来生成您需要的命令...
Nir Pengas 2011年

Answers:


9

您可以使用来搜索属于特定标签的电子邮件

label:mylabel <include search terms here>

语法,您可以使用

-label:mylabel <include search terms here>

句法。

因此,您可以将两者结合使用来实现。您必须为所定义的所有标签组成一个包含“ -label:mylabel”的搜索字符串,除了要查找的标签外,如下所示:

label:thisisthelabelimlookingfor -label:label1 -label:label2 ... <include search terms here>

3
是的,我原本以为是同一条线,但是我想也许有更好的方法,而打字要少得多。我定义了大约100个标签:(
Midhat

我可以获取所有标签的简单纯文本列表吗?
Midhat

@Midhat:好问题。您可以使用imap访问您的帐户,并获得所有标签的列表,如stackoverflow问题的答案所示。但是,也许有更好的方法。
fretje

我从“离线Gmail”选项中获得了纯文本标签列表。它列出了所有标签,以逗号分隔。
Midhat

-label运算符也没有为我工作
Midhat

2

这不是世界上最好的方法,但是请使用内置标签来发挥自己的优势。假定您不关心GMail应用的标签,例如“社交”,“更新”,“促销”或“论坛”。这些标签不视为USER LABELS(我的示例用户标签:Foo)

  1. 转到“所有邮件-选择所有邮件”,然后选择“选择所有邮件中的所有XXX邮件”(应用于您拥有的每一封电子邮件)
  2. 使用标签菜单取消选择“ GMail标签”之一(如上)。我通常使用促销。
  3. 转到您要搜索的标签(Foo)
  4. 选择全部,然后“选择(Foo)中的所有XXX消息”
  5. 使用标签菜单从步骤2(促销)中选择已清除的GMail标签-并取消选择当前标签(Foo)
  6. 现在,您拥有所有带有(Foo)标签的消息,更改为标签(Promotions)-不是用户标签的标签
  7. 转到(促销)-添加搜索:'has:nouserlabels'
  8. 现在您有了一个以前仅被标记为(Foo)的电子邮件列表
  9. 转到(促销)-选择全部,然后选择“选择(促销)中的所有XXX邮件”
  10. 使用标签菜单将(Foo)添加到所有邮件。一切恢复正常

0

当过滤gmail邮件时,默认情况下会在会话视图中对其进行配置。对话视图设置将具有相同主题的电子邮件分组为单个基于对话的消息。

因此,在选择或浏览过滤的邮件时,您会在邮件上看到多个标签,这些标签与您指定的条件无关。

显示为:

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

要解决此问题,请转到“ Settings -> General -> Conversation view选择” Conversation View Off,然后单击“保存更改”。页面刷新后,所有对话都将分解为单独的消息。

现在将显示为:

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

在大多数情况下,这足以按单个标签过滤邮件。

将转发的电子邮件和回复的电子邮件也取消分组为单个邮件确实具有负面影响。

但是,重新启用对话视图后,可以自由更改设置而不会丢失对话分组。


至于使用过滤器进行搜索;问题之一是在值的上下文中AND / OR的修饰符。

  • 要在一组值中指定OR,请使用大括号: {a b}
    • 转换为:a OR b
  • 要在一组值中指定AND,请使用括号 (a b)
    • 转换为:a AND b
  • 要在值上指定NOT运算符,请使用减号 -a
    • 转换为:NOT a

这使您可以与其他运营商喜欢使用它们的组合label:from:to:等。

可以在其网站https://support.google.com/mail/answer/7190上找到gmail中可用的运算符和修饰符的列表

通常,类似的过滤器label:a -label:x -label:y会转换为 Has label a and does not have label x and y.

这意味着将找到带有标签a且缺少标签x或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>

要过滤一组标签,您需要使用过滤器,例如:label:{x y z}包含带有标签的消息xyz

为了排除一组标签,你可以使用像一个过滤器:-{label:{a b c}}排除有标签的所有消息abc

要组合过滤器,它应如下所示:label:{x y z} -{label:{a b c}}

转换为: Has labels x, y, or z AND does NOT have labels a, b, or c

:您还可以用另外的运营商如不结合分组-{label:{a b} from:{domain.com}}其转化为does NOT have labels a OR b OR from domain.com

特别考虑;在搜索包含空格的值时,请将该值用引号引起"..."来以确保完全匹配。否则,它将根据分组上下文(使用大括号或括号)将空格视为ANDOR修饰符。

像这样:label:{My Label}应该是label:{"My Label"}


因此,要回答原始问题以查找仅包含单个标签My Label而没有其他标签的邮件,则可以使用: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>

遗憾的是,您将需要显式定义所有排除的标签,因为没有运算符只能指定标签。请记住,您将要禁用对话视图,以防止对也包含排除标签的邮件进行分组。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.