请启用 JavaScript 来查看本站。

SecurityGateway for Email Servers v9.0

导航: 安全 > 过滤

邮件内容过滤规则

滚动 上一个 顶部 下一个 更多信息

该页面用于管理您的邮件内容过滤规则。您可在此处创建,编辑或者删除您的规则,只需点击条目中的一个选择框,您即可快速地启用或者禁用任意规则。过滤规则可用于指定特定标准,它是 SecurityGateway 处理每封邮件时的测试标准。接着,若邮件符合一项规则,便可执行一系列的操作。您可以创建规则来查看特定报头是否存在,查看特定发件人或收件人,在报头或者邮件正文搜索特定文本,测试邮件的大小,以及很多其他操作。若一封邮件符合一条规则的测试,那么此项规则可导致邮件被拒收,删除,隔离,复制或者重定向至不同的地址,等等。

内容过滤规则列表有三栏:启用,描述及预览。启用栏里包含了一个每个条目的选择框,可以用来快速地启用/禁用规则。描述栏中包含了“规则名称”,是由您在创建一条规则时所指定的。预览栏中包含了每条规则的图标,当您将指针悬停在某一规则时,将显示该规则的工具提示。工具提示中包含了真正的 Sieve 脚本 ,该脚本由内容过滤器编辑器创建,用来为规则而服务。

页面顶部的工具栏包含了下列四个选项:

新建

点击“新建”来打开“内容过滤规则编辑器”,用来创建一条新规则。

编辑

选中一条规则然后点击工具栏上的“编辑”,在“内容过滤规则编辑器中将其打开”。或者,您只需双击一条规则将其打开。

删除

要删除一条或多条规则,从列表中选中条目然后点击“删除”。会跳出一个框,要求您确认是否决定删除规则。您可以使用 Ctrl 和 Shift 键来选择多个条目。

针对域:

使用“针对域:” 通过下拉列表框来选择在列表中要显示哪条规则。您可显示全局规则,该规则适用于一切域,或者您可以显示特定域的规则。

内容过滤规则编辑器

内容过滤规则编辑器用于创建新规则或者编辑现有规则。要创建一条新规则,点击内容过滤规则工具栏上的“新建",然后逐一(顶部到底部)进入编辑器选项,每次只进入一个选项。完成后,点击“保存并关闭”来创建新规则。

已启用该规则

要创建一条新规则,必须勾选此框。至于现有的规则,您可以取消勾选此框将此规则禁用。在测试邮件时,SecurityGateway 不会使用已禁用的规则。该选项所对应的是“内容过滤规则”列表上的“已启用”栏。

针对域:

使用此选项来选择该规则所适用的域。如果选择了“--全局--”,那么发送至或者来自于您 SecurityGateway 的一切域的全部邮件都将按照该规则进行测试。如果选择的是一个特定域,那么只需测试发送至或来自于该特定域的邮件。

规则名称:

在此输入规则的描述性名称。该选项对应的是“内容过滤规则”列表上的“描述”栏。

应用此规则,如果

所有条件都符合(与)

如果您希望只有当一封邮件满足了所有您所提供的如下测试条件后再匹配一条规则的话,请选择此选项。这是在测试条件下执行一个合乎逻辑的“与”。换句话来说,“若条件 A 是真的且条件 B 也是真的,那么就执行特定操作。”

符合任意条件(或)

如果您希望一封邮件满足了您所提供的如下测试条件中的任意一项后再匹配一条规则的话,请选择此选项。这是在测试条件下执行一个合乎逻辑的“或”。换句话来说,“若条件 A 是真的或者条件 B 是真的,那么就执行特定操作。”

条件:

此框中会显示您为一条规则所提供的所有测试条件,还伴随了若一封邮件符合该规则所要执行的操作。点击框中的条件,您可以编辑任意一项。点击条件附近的“(删除)”,您可以删除任意一项。使用此框下的“点击此处为该规则添加一个条件”链接来添加一个新条件。

点击此处来为该规则添加一个条件

点击条件框下的 “点击此处为该规则添加一个条件”链接来添加一个新条件。添加完条件后,您可通过再次点击该链接来添加更多条件。要获得您可以添加的不同类型条件的信息,请见下方的规则条件

操作:

当一封邮件符合规则条件时,从此列表中选出您希望执行的操作。若选中操作需要更多数据,在此操作下会出现一个相应的控件让您输入该数据。欲获得您可以执行的不同类型操作的信息,请见下方的操作。当您为您的规则设置完所有条件并且选中了一项操作后,请点击“保存并关闭”来关闭编辑器并在列表中添加新规则。

规则条件

当您希望给一条规则添加一个测试条件时,您将会使用“点击此处为该规则添加一个条件”链接来打开规则条件这一屏幕。在使用该屏幕来创建测试条件时,您必须首先指定邮件属性,或者您欲进行测试或比较的项目。接着,您必须指定如何测试或比较此项目: 该项目是否包含特定文本,它是否完全等同于特定文本,是否存在特定的报头,等等。里有几个可以测试的项目和多种测试方法。当您已选中项目、测试方法且已输入任何所需信息,请点击“保存并关闭”从而向您的规则中添加测试条件。

要比较的项目:

这些是您可以在邮件中测试的项目。

MAIL (From)—该测试使用的值就是 SMTP “MAIL From” 命令所通过的值。这就表明了邮件从何而来,不过并不一定要与邮件的“发件人”报头所包含的信息完全一致。有时“发件人”报头会包含额外信息或者不同信息。除了那九种常见的测试或比较项目的方法之外(见下),该项目同样可以进行比较,使用“是本地用户”和“非本地用户”测试。

RCPT (To)— 该测试使用的值就是 SMTP“RCPT To”命令所通过的值。这就表明了邮件从何而来,不过并不一定要与邮件的“收件人”报头所包含的信息完全一致。有时“收件人”报头会包含额外信息或者不同信息。除了那九种常见的测试或比较项目的方法之外(见下),该项目同样可以进行比较,使用“是本地用户”和“非本地用户”测试。

MAIL 和 RCPT—选择此项目来使用 SMTP“MAIL From”和 SMTP“RCPT To”命令来确定邮件是入站、出站还是内部邮件 (请参阅下方的“额外测试方法”)。

IP—选择该项目来测试发件服务器或客户端的 IP 地址

报头若您想要指定一个报头进行比较,请选择该项目。若选中, 将出现一个“报头名称”选项,让您指定对于此测试条件,将使用哪个报头。除了那九种常见的测试项目的方法之外,该项目同样可以进行比较,使用“报头存在”以及“报头不存在”测试。注意:在指定“报头名称”时,在报头名称里不要使用冒号。例如, 使用“发件人”作为“报头名称”,而不用“发件人:” ,若您希望比较发件人报头。

主题—这是邮件的“主题”报头。若您希望测试邮件的主题,请选择该项目。

正文—选择“正文”则您希望使用邮件正文作为测试项目来比较。

正文或主题—在“正文”或“主题”匹配此规则条件时,如果您希望创建一个为 true 的规则,请选择此项目。这个项目是为了简化规则创建而提供的,因为它实际上等同于创建具有两个单独“OR”语句的规则,一个搜索“正文”,另一个搜索“主题”来查看是否存在相同的文本。

如何比较:

此列表中包含了可用来测试或比较项目的方法,这些项目是在“上述想比较的对象”选项里选中的。对于所有项目来说,有几种常见的测试方法。MAIL 和 RCPT 项目有一套独特的比较器,Mail(From)RCPT(To)Header 有额外的测试方式。

常见的测试方法:

这些测试方法每一种都是将上述要比较的项目中选中的项目与您在下方所指定的如何比较中所选中方法的搜索值相比较。所有这些比较类型都适用于上述比较的项目选项,,不过 MAIL 和 RCPT 除外。它有一套独特的比较器。

包含— 若选中了此方法,如果“搜索值”是一个子字符串或是上述指定的要比较项目的一部分, 那么该比较符合条件或者是“True”。例如,若您选择了“MAIL (From)”作为要比较的项目,然后选择“包含”作为比较的方法,以 “example.com”作为“搜索值”, 那么来自于含有“example.com”地址的任意一封邮件都将符合该条件。

不包含—若选中了此方法,如果“搜索值”不是一个子字符串,也不是上述指定的要比较项目的一部分,那么该比较符合条件或者是“True”。例如,若您选择了“MAIL (From)”作为要比较的项目,然后选择“包含”作为比较的方法,以 “example.com”作为“搜索值”, 那么除了那些含有“example.com”地址的邮件外,其他任意一封邮件都将符合该条件。

包含文字—此比较器类似于“包含”,不过仅在字边界锚跟随在此字符串后面时才匹配。这避免了需要手动创建以下格式: \b(word1|word2|word3)\b。例如:一个规则搜索包含“cat”的邮件正文时,只有邮件包含完整的“cat”时才匹配。如果邮件包含 catfishcertificate 则不匹配。

不包含文字—T此比较器类似于“不包含”,不过仅在不存在含有跟随在此字符串后的字边界锚的字符串时才匹配。例如:一个规则搜索不包含“cat”的邮件正文时,将匹配不包含完整“cat”的任何邮件,即使正文包含 catfishcertificate 时也匹配。

等于—此方法与上述的“包含”类似,不同之处在于“搜索值”必须与“要比较项目的值”完全匹配,而不是仅仅是该值的一部分。例如,若您选择了 IP 作为要比较的项目,然后选择“等于”作为比较的方法,以 “192.168.0.1”作为“搜索值”, 那么只有来自于该准确 IP 地址的邮件才符合条件。

不等于—此类型的比较与先前的方式正好相反。如果“要比较项目的值”与“搜索值”不完全相同,那么该比较是真的。例如,若您选择了 IP 作为要比较的项目,然后选择“等于”作为比较的方法,以 “192.168.0.1”作为“搜索值”, 那么除了那些来自于该准确 IP 地址的邮件外,其他任意一封邮件都符合条件。

以...开头— 当“搜索值”与上述所指定的要比较项目的值开头相符时,若您希望考虑一个条件为 True,那么请使用此类型的比较。例如,若您选择“主题”作为要比较的项目, “[allstaff]”作为搜索值,那么所有主题行以“[allstaff]”开头的邮件都符合条件。

不以...开头—与先前的比较类型正好相反。当“搜索值”与上述所指定的要比较项目的值开头不相符时, 若您希望考虑一个条件为 True,那么请使用此选项。例如,若您选择“主题”作为要比较的项目, “[allstaff]”作为搜索值,那么除了主题行以“[allstaff]”开头的邮件以外,其他任意邮件都符合条件。

以...结尾—该比较指的是每当“要比较项目的值”以“搜索值”作为结尾,即符合了条件。例如,若您选择了 RCPT (To) 作为要比较的项目且将“以...结尾”作为比较方法,以 “.cn” 作为搜索值,那么以 “.cn”作为邮件地址结尾的全部邮件都将符合条件。

不以...结尾—该比较指的是每当“要比较项目的值”不以“搜索值”作为结尾,即符合了条件。例如,若您选择了 RCPT (To) 作为要比较的项目且将“以...结尾”作为比较方法,以 “.cn” 作为搜索值,那么除了以 “.cn”作为邮件地址结尾的全部邮件之外,其他任意邮件都将符合条件。

匹配正则表达式—如果您希望在以下情况使用 正则表达式,即比较在上方“待比较项目”这一选项中选定的项目,请选择此项。

额外的测试方法:

是本地用户—该比较方法只适用于上述的 MAIL (From) 以及 RCPT (TO) 选项。当邮件地址是本地的 SecurityGateway 用户时,若您希望符合条件或条件为“True”,请选择此选项。例如,若您选择 MAIL (From) 作为“要比较的项目”,那么只有来自于本地用户的邮件才符合条件。

非本地用户—该比较方法只适用于上述的 MAIL (From) 以及 RCPT (TO) 选项。当邮件地址不是本地的 SecurityGateway 用户时,若您希望符合条件或条件为“True”,请选择此选项。例如,若您选择 MAIL (From) 作为“要比较的项目”,那么来自于远程用户的所有邮件都符合条件。

报头存在—只有当您选择“报头”作为“要比较的项目”时,此选项才可用。当您选择了此选项并且在“所提供的选项中”指定了报头的名称,只有当邮件中出现指定报头时才符合条件。例如,若您指定了“X-我的-自定义-报头”作为“报头名称”, 那么所有显示该报头的邮件都符合条件。无此报头的任意一封邮件都不符合条件。

报头不存在—只有当您选择“报头”作为“要比较的项目”时,此选项才可用。当您选择了此选项并且在所提供的选项中指定了“报头名称”,只有当邮件中不显示指定报头时才符合条件。例如,若您指定了“X-我的-自定义-报头”作为“报头名称”, 那么所有不显示该报头的邮件都符合条件。显示此报头的任意一封邮件都不符合条件。

邮件是/不是[入站d|出站|内部]—这些比较器仅适用于 MAIL 和 RCPT 项目。SMTP“MAIL From”和 SMTP“RCPT To”值都用于确定邮件是否为入站,出站或内部邮件。

入站—邮件是指向本地用户的,而不是来自同一个域的本地用户。

出站—邮件是来自本地用户的,而不是指向同一个域的本地用户。

内部邮件来往于同一个域的本地用户。

操作

待为您的规则设置完所有条件后,使用“规则编辑器”上的“操作”选项来选择当一封邮件符合规则条件时所要执行的操作。有七种操作可供选择:

拒收— 若您希望拒收一封符合该规则内条件的邮件,请选择此操作。 当选中了该选项时,在操作下方会出现一个“SMTP 反应”选项,您可以指定在邮件拒收时所发送的文本反应。例如, 在“SMTP 反应”选项中,若您使用了,“我们不需要你的垃圾邮件!”,在 SMTP 会话过程中,当 SecurityGateway 拒收一封符合规则的邮件时,它将会发送“550 我们不要你的垃圾邮件。

删除—当一封邮件符合规则的条件时,该操作将使邮件被删除。与“拒收”操作不同的是,该选项不会发送 SMTP 反应,也不会发送投递失败邮件,就单纯地将邮件删除。

隔离若选中了该操作,如果收件人是本地用户,那么符合该规则下条件的邮件将置于收件人的隔离中。如果收件人是远程用户,那么该邮件将置于管理员隔离中。

管理员隔离—当邮件符合规则下的条件时,若您希望将邮件发送至管理员隔离中,请选择此操作。

重定向当邮件符合规则下的条件时,使用该操作,将邮件重定向至其他地址。在操作下提供了一个“收件人”选项,这样您便可指定将邮件重定向至哪个邮件地址。重定向的邮件将不会发送至初始收件人...邮件被重新路由至该操作中指定的地址。

复制—若您希望将邮件复制到一个额外的邮件地址,请使用此选项。在操作下提供了一个“收件人”选项,这样您便可指定将邮件发送至哪个邮件地址。与“重定向”类似,不同之处在于在复制操作中,初始收件人以及此操作所指定的地址都将受到该邮件的副本。若您希望将一封邮件复制到多个地址,那么您可为每个地址指定一条额外的规则。

发送提示(警告)—当一封邮件符合规则下条件时,若希望向某人发送一封提示或者警告邮件,请使用此操作。若选中了此操作,会向您提供选项以指定提示的收件人发件人主题以及邮件文本 (邮件的正文)。在提示中您可使用一些宏,从而动态地包含一些特定信息。当 SecurityGateway 碰到带宏的提示文本,它会用相应的值将其取代。可使用以下宏:

$发件人$—以用于符合规则邮件的 SMTP MAIL From 地址来取代。例如,”sender@example.net“。

$发件人邮箱$—该宏仅仅是以通过 SMTP MAIL From 命令的邮件地址的邮箱部分来取代。例如,“sender@example.net”地址中的“sender”。

$发件人域$—该宏仅仅是以通过 SMTP MAIL From 命令的邮件地址的域部分来取代。例如, “sender@example.net”地址中的“example.net”。

$收件人$—以用于符合规则邮件的 SMTP RCPT To 地址来取代。例如,“recipient@example.com”..

$收件人邮箱$—该宏仅仅是以通过 SMTP RCPT To 命令的邮件地址的邮箱部分来取代。例如,“recipient@example.com”地址中的“recipient”。

$收件人域$—该宏仅仅是以通过 SMTP RCPT To 命令的邮件地址的域部分来取代。例如,“recipient@example.com”地址中的“example.com”。

$主题$该宏是以符合条件的邮件“主题”报头的内容来取代。

$邮件 ID$—该宏是以邮件的“邮件 ID”报头之值来取代。

$日期戳$—该宏是以邮件的日期来取代

$当前时间$— 该宏是以 SecurityGateway 创建提示的当前时间来取代。

$HELO 名称$— 这是当 SecurityGateway 收到符合规则的邮件时,在 SMTP 会话过程中所通过的 HELO 域。

添加到邮件分值—如果您希望在邮件符合规则条件时,为邮件评分添加特定数量的分数,请使用此操作。

发送为已注册邮件 (RMail)—如果您希望在邮件符合规则条件时使用 RMail 的 Registered Email(注册邮件)功能中的一项或多项,请使用此操作。

加密—果要加密邮件,请选择此选项。

跟踪 & 证明—如果使用 RMail 的跟踪和证明功能,请选择此选项。

电子签名—如果您希望使用 RMail 的电子签名功能进行电子签名文件,请选择此选项。

为 REQUIRETLS 标记邮件—指示该邮件应使用 RequireTLS

发送为安全 web 邮件—如果您希望使用 SecurityGateway 的安全通信 web 门户系统来发送邮件,而不是使用传统的邮件投递,请选择此操作。

正则表达式

内容过滤器的规则条件 支持“符合正则表达式”作为比较方法。正则表达式(regexp)是一个功能全面的系统,不仅帮助您搜索特定的文本字符,也可以搜索到文本类型。一个正则表达式的文本类型包含特殊字符的组合,成为“元字符”以及字母数字文本字符,或者“文字” (例如:abc,123,等等)。该类型用于匹配文本字符— 并附有匹配的结果,是成功还是失败。

SecurityGateway 的正则表达式方案使用的是 PERL 兼容性正则表达式(PCRE)库。您可以在此获得正则表达式方案的更多信息: http://www.pcre.org/http://perldoc.perl.org/perlre.html

如果要对正则表达式有一个全面的了解,请参阅: 掌握正则表达式, 第三版 由 O'Reilly Media, Inc.出版。

元字符

在正则表达式中,元字符是有特定功能及用途的特殊字符。在 SecurityGateway 中的正则表达式方案可允许使用下列元字符:

\ | () [] ^ $ * + ? .

元字符

描述

\

若在一元字符钱使用反斜线 (“\”), 将使元字符被处理为文字字符。若您希望正则表达式搜索其中一个用作元字符的特殊字符,这一点是有必要的。例如,要搜索“+”您的表达式中必须包含“\+”。

|

使用交替字符(亦叫做“”或者“竖线”),当您希望字符两侧的其中一个表达式符合目标字符。正则表达式是“abc|xyz”。搜索一个文本字符时,会出现符合条件的“abc”或“xyz”。

[...]

框(“[” 及 “]”)内包含的字符组就表示该组中的任意字符都可能符合所查找的文本字符。括号里字符间的破折号(“-”)表示了字符的范围。例如,在表达式“[a-z]”中搜索字符“abc”将生成三个匹配项: "a,” “b,”以及“ c。”使用表达式“[az]”只会生成一个匹配项: "a。”

^

表示字符串的开头。在目标字符串中,“abc ab a”表达式“^a”将生成一个匹配项—目标字符串中的第一个字符。正则表达式“^ab”也将生成一个匹配项—目标字符串中的 第一第二个字符。

[^...]

紧跟左括号(“[”)后的插入记号(“^”)有不同的含义。用于将括号内剩余的字符排除在符合条件的目标字符串之外。表达式“[^0-9]”表明目标字符不是数字。

(...)

圆括号影响了样式估计的顺序,也可作为带标记的表达式,用于搜索和替换表达式。

正则表达式的搜索结果可以暂时保存,也可用于替换表达式以建立新的表达式。在替换表达式中,您可以包含一个“&”或者“\0”字符,将会以正则表达式搜索过程中所找到的子字符串来替换。所以,如果搜索表达式“a(bcd)e”找到了一个子字符串匹配项,那么“123-&-123”或者“123-\0-123”的替换替换表达式将以“123-abcde-123”来替换符合条件的文本。

同样地,在替换表达式中您也可以使用特殊字符“\1,”“\2,”“\3,”等等 。这些字符只会被已标记表达式的结果所替代,而不是整个子字符串的匹配项。紧跟反斜线的数字表明您想要引用的带标记表达式(如果正则表达式中包含了不知一个带标记的表达式)。例如,如果您的搜索表达式是“(123)(456)”并且您的替换表达式是“a-\2-b-\1”,那么一个符合的自字符将由“a-456-b-123”替代,而“a-\0-b”的一个替换表达式将以“a-123456-b”替代。

$

美元记号(“$”)代表字符串的结尾。在文本字符串中,“13 321 123”表达式“3$”将生成一个匹配项—字符串中的最后一个字符。正则表达式“^123$”也将生成一个匹配项——目标字符串中的最后三个字符。

*

星号(“*”)量词表明星号左边的字符在一行字符中出现的次数必须大于等于零次。那么“1*abc”将符合文本“111abc”以及“abc”。

+

与星号量词类似,“+”量词表明加号左边的字符在一行字符中出现的次数必须大于等于一次。那么,“1+abc”将符合文本“111abc”而不符合文本“abc”。

?

问号(“?”)量词表明问号左边的字符必须符合零或一次。那么,“1*abc”将符合文本“abc”,并且符合“111abc”的“1abc”部分。

.

句号或者点(“.”)元字符将符合任何其他字符。那么“.+abc”将符合“123456abc”,且“a.c”将符合“aac”,“abc”,“acc”等等。