21

Thunderbird 的过滤机制非常适合简单的事情。但我想做类似的事情

(如果邮件包含 xy 或发件人是 yz)并且状态为已读,则移至垃圾箱

问题是,一个过滤规则只能匹配任何(= OR)或所有(=AND)过滤条件。我尝试通过首先在第一个过滤器中使用不可能的标签组合标记所有消息来解决这个问题,然后使用第二个过滤器将所有标记+标记的消息移动到垃圾箱(如果它们被读取),但这效果很差,因为有时消息没有被标记,有时标记的消息没有被删除。

所有这些的目的是在我阅读它们后立即删除不重要的或通知电子邮件。当然,我可以为它们中的每一个做一个单独的过滤器,但是如果我想改变一些东西,对于所有 >20-30 的过滤器规则来说,它会变得很乏味。

是否有可能以某种方式侵入过滤器配置,或者是否有其他仅使用一个过滤器的复杂过滤方式?

顺便提一句。如果这很重要,我正在使用 Gmail+IMAP。

4

5 回答 5

14

看看FiltaQilla插件 - 它允许正则表达式...... :-)

于 2012-05-19T08:13:01.057 回答
5

一个不太好的但有效的解决方案可能是将您的要求转换为析取范式。这意味着创建几个过滤器,每个过滤器都有“AND”部分。由于多个过滤器是独立的,因此一个接一个地运行它们会模拟“或”部分。

在您的特定情况下,(message contains xy OR sender is yz) AND status is read = (message contains xy AND status is read) OR (sender is yz AND status is read).

这意味着您应该创建两个过滤器,一个用于message contains xy AND status is read,另一个用于sender is yz AND status is read

于 2013-10-16T13:03:04.037 回答
5

我强烈建议按照MozillaZine中的建议使用FiltaQuilla

例子

她是我的过滤器:

  • 来自包含@yahoo.es
  • 主题是照片、自拍或图像,加上复数形式,不区分大小写

带有正则表达式的 ThunderBird 过滤器

于 2016-04-02T01:40:06.257 回答
5

您还可以手动编辑msgFilterRules.dat\Users... 文件夹中的文件。

(A || B) && C变成:

condition="AND (OR (body,contains,A) OR (body,contains,B) AND (to,contains,C)"

注意第一个括号不匹配。

根据您的要求更改条件。查看其他过滤器,或创建测试过滤器以凭经验学习语法。请注意,有几个msgFilterRules.dat用于不同的电子邮件地址和文件夹。

于 2019-10-20T15:49:58.643 回答
1

我认为没有办法完全按照您的意愿行事。但我可以建议这种解决方法:

  1. 创建第一个过滤器以将邮件存储在特定文件夹 (folder1) 中,仅基于发件人
  2. 创建一个搜索文件夹(文件夹 2),只选择文件夹 1 中的已读邮件
  3. 定期(手动)从文件夹 2 中删除邮件。不幸的是,我没有找到自动执行此操作的方法

我使用这个系统删除了一些日常通知,几天后这些通知就变得毫无用处了。

于 2012-03-03T20:42:02.877 回答