Sun Java Communications Suite 5 发行说明

选项问题

6511005

用户的 Sieve 脚本在升级后会停止工作

运行 JES Messaging Server 6.2p2 或更高版本的站点、升级到初始 JES Messaging Server 6.3 的站点、通过 Communications Express 邮件过滤器使用任何基于日期的过滤功能的用户都有可能遇到该问题。

对于 Sieve 过滤器而言,没有文档记录、不受支持的 setdate 操作是在 JES Messaging Server 6.2p2 (更改请求编号:6236243)中实现的,但 JES Messaging Server 6.3 已删除了该操作。在 Sieve 的 variables 草稿的早期版本中,提出了 setdate 操作,但在随后的草稿中被删除了,特别是在最新的 variables 草稿(目前处于最后的宣布阶段)中已经没有该操作了。为了替代这个目前已过时的方法,最近提出了 date Sieve 扩展,还特别实现了其 currentdate 测试。

考虑到 setdate 处于试验阶段、无文档记录并且会很快过时的特点,最终用户不太可能有意地尝试使用 setdate

但是,当用户请求按日期过滤他们的消息时,JES Messaging Server 6.2p2 中的 Communications Express 邮件过滤器生成器确实在使用 setdate。因此,很多用户(在不知道的情况下)很可能让自己的 Sieve 过滤器使用目前已过时的 setdate 操作。如果用户以任何方式编辑他们的 Sieve 过滤器,都会废弃任何类似的过时用法,而使用新的 currentdate 方法。但同时,他们的 Sieve 过滤器会被视为语法错误,然后生成一个错误,对于使用这种错误 Sieve 过滤器的用户,发送给他们的每条消息将不通过过滤直接进行发送,另外 MTA 将给拥有这种 Sieve 过滤器的用户发送一条通知消息,警告他们的 Sieve 过滤器中存在语法问题。