我对在带有 catchall 的域上随机生成虚假地址的反向散射存在问题。
fake-alias 使用了一个方案,使用带有正则表达式的 egrep
^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]{2,5}@example.org.*
我的邮件目录列出了所有不需要的反向散射,幸运的是,没有使用此方案的地址实际上被使用。
但是,procmail 确信它不匹配。
:0hD:
* ^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]{2,5}@example.org.*
!spam
procmail: No match on "^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]{2,5}@example.org.*"
我无法让 procmail 像 egrep(和其他使用正则表达式的工具)那样解释正则表达式。
我究竟做错了什么?
我发现默认情况下 procmail 会忽略大小写,这就是我在配方中添加“D”的原因。但我在 procmail-recipes 中找不到使用 [AZ] 的任何示例。我是不是在尝试一些不可能的事情?
答案1
Procmail 的正则表达式方言不支持{m,n}重复运算符。您只需用普通手写方式拼写出模式(如果模式太大,可以使用变量)。
:0D
* ^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9][0-9]([0-9]([0-9][0-9]?)?)?@example\.org
!spam
顺便说一句,您不应该在转发配方上使用锁定,尾随通配符是无用的,并且标志h
是默认的;所以我把这些东西拿出来了。