Sun Java System Messaging Server 6 2005Q4 管理指南

imsimta test -exp 输出

完整的 imsimta test -exp 命令如下:

# imsimta test -exp -mm -block -input=temp.filter -message=rfc2822.msg

下面是一个输出示例:


示例 17–4 imsimta test -exp 输出


# imsimta test -exp -mm -block -input tmp.filter -message=rfc2822.msg
Expression: if header :contains ["to"] ["pamw"]       (1)
Expression: {
Expression: redirect "usr3@sesta.com";
Expression: keep;
Expression: }
Expression:
Expression: Dump: header:2000114;0  3  1  :contains  1  "to"  1
"pamw"  if  8  ;
Dump: redirect:2000121;0  1  1  "usr3@sesta.com"  ;  keep:2000117;0 (2)
Dump: 0
Result: 0
Filter result: [ redirect "usr3@sesta.com" keep ]    (3)
            

1) Expression: 输出行显示正在从 tmp.filter 文本文件中读取并解析的过滤器。这些在调试脚本中不是特别有用。

2) Dump: 输出行是计算机解释 Sieve 语句的结果。不应看到有任何错误,并且输出看起来应与输入相匹配。例如 Dump 显示了文字 redirect, usr3@sesta.com,这与过滤器文件中的行 redirect "usr3@sesta.com"; 类似。

如果未显示此匹配文本,则应当引起注意,否则,它们在调试脚本时也不是特别有用。

3) 在输出的底部,您将看到 Filter result: 语句。如前面所述,可能有两种结果:

Sieve Result: [] 或:Sieve Result: [action]

其中 action 是 Sieve 脚本执行的操作。请注意,有时预期的结果为空。例如,对于 discard 过滤器,您应当测试该过滤器并不总是放弃测试的每个 .msg 文件。如果在方括号间存在某个操作,例如:

Filter result: [fileinto "QMSG" keep]

这表明 rfc2822.msg 文件中的文本与过滤器条件匹配。在此特定示例中,过滤器将把邮件归档到 QMSG 文件夹中,并在收件箱中保存一份副本。本示例中的结果操作是 fileintokeep

测试过滤器时,应当测试两种结果的各个 .msg 文件。应始终测试是否已过滤匹配过滤器的邮件,并测试是否未过滤不想匹配的邮件。

请记住,对于通配符匹配,您必须使用 :matches 测试而不是使用 :contains。例如,如果要匹配 from=*@sesta.com,则必须使用 :matches,否则测试会由于不满足测试条件而失败。