要实现上一节中定义的自动删除邮件策略,必须设置 imexpire 规则。可以通过将规则放入 store.expirerule 文件来设置规则。以下所示为两个全局 store.expirerule 规则的示例:
Rule1.regexp: 1 Rule1.folderpattern: user/.*/trash Rule1.messagedays: 2 Rule2:regexp: 1 Rule2.folderpattern: user/.* Rule2.messagedays: 14 |
在此示例中,规则 1 指定垃圾文件夹中的所有邮件将在两天后被删除。规则 2 指定邮件存储中的所有邮件将在 14 天后被删除。
本节包含以下几个部分:
本节介绍设置 store.expirerule 文件规则的原则。
在早期的 Messaging Server 发行版中,可以使用 configutil 参数 store.expirerule.attribute 来设置过期规则(请参见 《Sun Java System Messaging Server 6 2005Q4 Administration Reference》中的“configutil Parameters”)。现在仍然可以使用,但不支持使用标题约束的过期规则(例如:使用特定主题行作为邮件过期规则)。无论如何,使用 store.expirerule 指定所有过期规则是最佳选择。
规则在名为 store.expirerule 的文件中指定。
可以使用相同的规则指定多个过期条件。(如上例所示。)
规则可以应用到整个邮件存储(全局规则)、分区、用户或文件夹。
全局规则存储于 msg_svr_base/config/store.expirerule 中
系统将针对每个邮箱检查每种全局规则,这可能会造成一定的系统处理开销(取决于指定的全局规则数)。因此,不应在全局规则文件中指定分区、邮箱或用户规则。总之,除了必要规则外,尽量少把其他过期规则放置到该文件中。
分区规则存储于 store_root/partition/partition_name/store.expirerule 中。
用户规则在 store_root/partition/partition_name/userid/store.expirerule 中指定,或通过将 folderpattern 规则指定为 user/userid/.* 来指定。
文件夹规则在 store_root/partition/partition_name/userid/folder/store.expirerule 中指定,或通过将 folderpattern 规则指定为 user/userid/folder 来指定。
请注意,只在 Messaging Server 6.2p4 发行版及更高版本中实现了使用 rule_name 的多个非全局规则(用户、文件夹、分区)。
多个过期规则可以同时应用于一个邮箱。邮箱的过期策略由全局规则和本地规则组成。本地规则适用于同一目录下的邮箱及其所有子文件夹。
imexpire 将统一应用于一个邮箱的所有过期规则,除非存在为此邮箱指定的专用规则(请参见表 18–8)。产生的规则集表示基于所有适用规则的最严格的过期策略。例如,如果规则 X 的过期策略指定最大邮件保存时间为 10 天,规则 Y 指定为 5 天,则统一规则为 5 天。
属性 |
说明(属性值) |
---|---|
指定规则是否为专用规则。如果指定为 exclusive,则只有此规则应用于指定的邮箱,而所有其他规则都将被忽略。如果存在多个专用规则,则将使用最后装入的专用规则。例如,如果指定了全局专用规则和本地专用规则,则将使用本地规则。如果有多个全局专用规则,则使用 configutil 列出的最后一个全局规则。(1/0) |
|
指定此规则影响的文件夹。格式必须以 user/ 开始,表示目录 store_root/partition/*/。请参见图 18–4 和表 18–9。(POSIX 正则表达式) |
|
文件夹中邮件的最大数量。传送附加的邮件时,最早的邮件将被擦除。(整数) |
|
传送附加的邮件时,擦除最早的邮件之前文件夹的最大大小。(以字节为单位的整数) |
|
邮件被擦除前的生存期(以天为单位)。(整数) |
|
在标记为将被擦除前,邮件的最大大小(以字节为单位)。(整数) |
|
宽限期。超大邮件可以保留在文件夹中的天数。(整数) |
|
邮件标题字段 |
指定标题字段和标记要删除的邮件的字符串。值不区分大小写,正则表达式不会被识别。示例:Rule1.Subject: Get Rich Now! 对于标题过期和过期日期,如果在这些标题字段中指定的日期值早于 messagedays 属性,则 imexpire 将删除邮件。如果指定了多个过期标题字段,将采用最早的过期日期。(字符串)。 |
regexp |
在创建规则时启用 UNIX 正则表达式。(1 或 0)。如果未指定,则将使用 IMAP 表达式。 |
seen 是用户打开邮件时,系统设置的邮件状态标志。如果属性 seen 设置为 and,则邮件必须已被阅读并且在规则实施前必须满足其他条件。 如果属性 seen 设置为 or,则邮件仅需已被阅读或或在规则实施前满足另一个条件。(and/or)。 |
|
deleted 是用户删除邮件时,系统设置的邮件状态标志。如果属性 deleted 设置为 and,则邮件必须被删除并且在规则实施前必须满足另一个条件。如果属性 deleted 设置为 or,则邮件仅需已被阅读或在规则实施前满足另一个条件。(and/or) |
通过在 store.expirerule 文件中指定规则来设置自动删除邮件规则。store.expirerule 文件中每行包含一个过期条件。全局规则配置文件 (msg_svr_base/data/store/store.expirerule) 的过期条件的格式如下:
rule_name.attribute : value
用户或邮箱规则配置文件的过期规则的格式如下:
attribute: value
示例 18–1 显示了 msg_svr_base/config/store.expirerule 中的一组全局过期规则。
规则 1 设置全局过期策略(即应用于所有邮件的策略),如下所示:
在创建规则时启用 UNIX 正则表达式。
3 天后删除大于 100,000 字节的邮件。
删除用户已删除的邮件。
删除所有 Subject: 标题中带有 "Vigara Now!" 或 "XXX Porn!" 字符串的邮件。
将所有文件夹限制为容纳 1,000 封邮件。达到 1,000 封邮件后,系统将从文件夹中删除最早的邮件以保持总数为 1,000。
删除所有 365 天以前的邮件。
规则 2 为托管域 siroe.com 中的用户设置自动删除邮件策略。它将邮箱大小限制为 1 兆字节,删除已删除的邮件,并删除 14 天前的邮件。
规则 3 为用户 f.dostoevski 的 inbox 文件夹中的邮件设置自动删除邮件策略。它将删除主题行带有表达式 "On-line Casino" 的邮件。
Rule1.regexp: 1 Rule1.folderpattern: user/.* Rule1.messagesize: 100000 Rule1.messagesizedays: 3 Rule1.deleted: or Rule1.Subject: Vigara Now! Rule1.Subject: XXX Porn! Rule1.messagecount: 1000 Rule1.messagedays: 365 Rule2.regexp: 1 Rule2.folderpattern: user/.*@siroe.com/.*Rule2.exclusive: 1 Rule2.deleted: or Rule2.messagedays: 14 Rule2.messagecount: 1000 Rule3.folderpattern: user/f.dostoevski/inboxRule3.Subject: *On-line Casino* |
通过将 imexpire 属性 regex 设置为 1,可以使用 POSIX 正则表达式指定文件夹模式。如果未指定,则将使用 IMAP 表达式。格式必须以 user/ 开头,后跟一种模式。表 18–9 显示了各种文件夹的文件夹模式。)
表 18–9 使用正则表达式的 imexpire 文件夹模式
文件夹模式 |
范围 |
---|---|
user/userid/.* |
将规则应用于 userid 的所有文件夹中的所有邮件。 |
user/userid/Sent |
将规则应用于 userid 在文件夹 Sent 中的邮件: |
user/.* |
将规则应用到整个邮件存储。 |
user/.*/trash |
将规则应用于所有用户的 trash 文件夹。 |
user/.*@siroe.com/.* |
将规则应用到托管域 siroe.com 中的文件夹: |
user/[^@]*/.* |
将规则应用到默认域中的文件夹。 |
请注意,虽然可以使用 Console 设置全局过期规则,但是使用 store.expirerule 是首选方法。如果使用 Console 或 configutil 创建的规则太多,可能会产生性能问题。
“主控制台”>“服务器组”> "Messaging Server"(打开)>“Messaging Server 控制台”>“配置”选项卡 >“邮件存储”>“过期/清除”>“添加”
图 18–4 显示了 GUI 的草图。
输入新规则的名称。
输入将从其中自动删除邮件的文件夹。
请参见上述设置 imexpire 文件夹模式。
如果此规则是与指定条件相匹配的文件夹的专用规则,则请选取“专用”框。
如果已选取此框,则此规则将优先于与指定模式相匹配的所有其他规则。有关专用复选框的详细信息,请参见表 18–8。
要创建基于文件夹大小的规则,请执行以下操作:
选取“文件夹大小约束”复选框。在“邮件计数”字段中,指定在最早的邮件被删除之前文件夹中将保留的邮件的最大数目。在“文件夹大小”字段中,指定最早的邮件被删除之前最大的文件夹大小(以字节为单位)。
要创建基于邮件生存期的规则,请选取“邮件生存期约束”复选框:
在“天数”字段中,指定邮件可以在文件夹中保存的时间(以天为单位)。
要创建基于邮件大小的规则,请执行以下操作:
选取“邮件大小限制约束”复选框。在“邮件大小限制”字段中,输入文件夹中允许的邮件的最大大小。在“宽限期”字段中,输入超大邮件被删除前在文件夹中保存的时间。
要创建基于是否已设置“已读”或“已删除”标志的规则,请执行以下操作:
选取“邮件标志约束”复选框。
对于“已读:” 字段,选择“和”将指定邮件必须已被阅读并且在规则实施前必须满足另一个条件。选择“或”将指定邮件仅需已被阅读或在规则实施前满足另一个条件。
对于“已删除:” 字段,选择“和”将指定邮件必须被删除并且在规则实施前必须满足另一个条件。选择“或”将指定邮件仅需被删除或在规则实施前满足另一个条件。
要创建基于标题字段及其值的规则,请执行以下操作:
选取“标题约束”复选框。
用以下格式输入以逗号分隔的标题和值的列表:
header1: value1, header2 : value2
示例:Subject: Work at Home!,From: virus@sesta.com
对于标题过期和过期日期,如果其日期值早于“邮件生存期约束”,则系统将删除该邮件。如果指定了多个过期标题字段,将采用最早的过期日期。(字符串)。
单击“确定”以将新规则添加到“自动删除邮件”列表中。