如何用Sieve筛选仅含无关Warning X的邮件并丢弃?
解决Sieve脚本仅删除纯warning X邮件的方案
要实现只丢弃仅包含warning X类型警告的邮件,同时保留含有其他重要警告的邮件,你可以借助Sieve的正则匹配扩展来实现,具体脚本如下:
首先要启用必要的Sieve扩展:
require ["fileinto", "regex"];
然后编写核心判断逻辑:
# 仅当邮件包含warning X,且没有任何其他类型的警告时,才删除 if allof( body :contains "warning X", not body :regex "(?m)^warning [^X]" ) { fileinto :create "INBOX.Trash"; }
逻辑说明:
(?m)是正则的多行模式,让^匹配每一行的开头,确保我们只识别独立行的警告,避免误匹配文本中零散的类似字符串。^warning [^X]用来匹配任何非X类型的警告行——也就是行开头是warning,后面跟着X以外字符的行。allof(...)表示两个条件必须同时满足:邮件里有warning X,且完全没有其他类型的警告,这时才会把邮件扔进垃圾箱。
注意事项:
如果你的警告行里warning和类型之间有多个空格,可以把正则调整为(?m)^warning\s+[^X](\s+匹配任意数量的空白字符)。另外,要确认你的邮件服务器支持Sieve的regex扩展,部分服务器需要手动开启这个功能。
内容的提问来源于stack exchange,提问作者user569825
相关产品推荐
相关产品推荐

