答案1
首先,contains
不支持正则表达式。
此外,您需要正确转义在 exim 变量扩展步骤中具有特殊含义的任何字符(例如$
和\
),这些字符应保留在实际的比较步骤中。
(大概您的过滤器匹配任何内容的原因是,它$
被解释为不存在的变量,并且在字符串比较之前发生的变量扩展步骤中消失了。)
看起来应该起作用的选项是ends
(字符串末尾的字符串比较)和matches
(正则表达式匹配)。
例如
if $h_from: ends ".win"
或者
if $h_from: matches \\.win\$
或(如果您想要引号,例如如果表达式中有空格)
if $h_from: matches "\\\\.win\\$"
请参阅22. 字符串测试条件有关详细信息,请参阅 Exim 过滤器手册中的部分。