通道级别的过滤器将应用于在通道内排队的每个邮件。此类过滤器的典型用途是阻止通过特定通道的邮件。
表 17–4 filter 通道关键字 URL-pattern 替换标记(不区分大小写)
标记 |
含义 |
---|---|
* |
执行组扩展。 |
** |
扩展属性 mailForwardingAddress。这可以是一个导致产生若干传送地址的多值属性。 |
$$ |
在 $ 字符中替换 |
$\ |
强制后续文本转为小写 |
$^ |
强制后续文本转为大写 |
$_ |
不对后续文本执行大小写转换 |
$~ |
在与地址本地部分关联的主目录的文件路径中替换 |
$1S |
与 $S 相同,但如果没有可用的子地址,则不插入任何内容 |
$2S |
与 $S 相同,但如果没有可用的子地址,则不插入任何内容,并删除前面的字符 |
$3S |
与 $S 相同,但如果没有可用的子地址,则不插入内容,并忽略后面的字符 |
$A |
在地址 local-part@ host.domain 中替换 |
$D |
在 host.domain 中替换 |
$E |
插入第二个备用属性 LDAP_SPARE_1 的值 |
$F |
插入传送文件的名称(mailDeliveryFileURL 属性) |
$G |
插入第二个备用属性 LDAP_SPARE_2 的值 |
$H |
在主机中替换 |
$I |
插入托管域(domainUidSeparator 指定的分隔符右侧 UID 的一部分)。如果没有可用的托管域,则失败 |
$1I |
与 $I 相同,但如果没有可用的托管域,则不插入任何内容 |
$2I |
与 $I 相同,但如果没有可用的托管域,则不插入任何内容,并删除前面的字符 |
$3I |
与 $I 相同,但如果没有可用的托管域,则不插入任何内容,并忽略后面的字符 |
$L |
在本地部分中替换 |
$M |
插入 UID,分流任何托管域 |
$P |
插入方法名称(mailProgramDeliveryInfo 属性) |
$S |
插入与当前地址关联的子地址。子地址是子地址分隔符(通常为 +)后原始地址的用户部分,但可由 MTA 选项 SUBADDRESS_CHAR 指定。如果没有给定子地址,则失败 |
$U |
插入当前地址的邮箱部分。这可以是 @ 符号左侧的全部地址,也可以是地址左侧、子地址分隔符 + 之前的部分。 |
使用 Sieve 编写过滤器。
将过滤器存储在位于以下目录的文件中:
../config/file.filter
该文件必须可全局读取并属于 MTA 的 UID。
将以下内容包括在通道配置中:
destinationfilter file:IMTA_TABLE:file.filter
重新编译配置并重新启动分发程序。
请注意,对过滤器文件所作的更改无需重新编译或重新启动分发程序。
destinationfilter 通道关键字将为排队到应用此关键字的通道的邮件启用邮件过滤。sourcefilter 通道关键字将为来自应用此关键字的通道队列的邮件启用邮件过滤。这些关键字都有一个必需参数,该参数指定了与通道关联的相应通道过滤器文件路径。
destinationfilter 通道关键字的语法为:
destinationfilter URL-pattern |
sourcefilter 通道关键字的语法为:
sourcefilter URL-pattern |
其中 URL-pattern 是一个 URL,指定了到问题通道的过滤器文件的路径。在以下示例中,channel-name 为通道的名称。
destinationfilter file:///usr/tmp/filters/channel-name.filter |
filter 通道关键字将为应用此关键字的通道启用邮件过滤。该关键字有一个必需参数,该参数指定了与通过通道接收邮件的每个信封收件人关联的过滤器文件路径。
filter 通道关键字的语法为:
filter URL-pattern |
URL-pattern 是一个 URL,在进行特殊替换序列处理后,将生成给定收件人地址的过滤器文件路径。URL-pattern 可以包含特殊替换序列,遇到此序列时,将使用源自问题收件人地址(local-part@host.domain)的字符串进行替换。表 17–4 中显示了这些替换序列。
fileinto 关键字指定在应用邮箱过滤器 fileinto 运算符后如何更改地址。以下示例指定了文件夹名称应作为子地址插入原始地址,替代原先存在的任何子地址:
fileinto $U+$S@$D |