#!/usr/bin/env python
from sievelib.parser import Parser
from sievelib.factory import FiltersSet
filter = u"""
require "fileinto";
require "envelope";
require "cp_extension";
if address :contains ["From", "Sender"]
["alsdjaskldjioqwdpqjpdj@asjkdn.com",
"bla.com",
"blabla.co.uk",
"test@bla.com"]
{ discard; stop; }
# cp_filter_name: Filter1
if allof (
not address :is ["From", "Sender"] ["from"] ,
address :contains ["To"] ["toasd"] ,
header :contains ["Subject"] ["subjecthere"] ,
not header :contains "X-Priority" ["1", "2", "4", "5"] ,
size :over 113664 ,
envelope :contains ["To"] ["13223"])
{
fileinto "INBOX";
redirect "forward@t.de";
discard;
stop;
}
# cp_filter_name: Filter2
# cp_filter_description: Descri2
if allof (
not address :is ["From", "Sender"] ["from"] ,
address :contains ["To"] ["toasd"] ,
header :contains ["Subject"] ["subjecthere"] ,
not header :contains "X-Priority" ["1", "2", "4", "5"] ,
size :over 113664 ,
envelope :contains ["To"] ["13223"])
{
fileinto "INBOX";
redirect "forward@t.de";
discard;
stop;
}
"""
p = Parser()
if p.parse(filter) == False:
print "ERROR: " + str(p.error)
exit(1)
p.dump()
f = FiltersSet("new filterset")
f.from_parser_result(p)
f.tosieve()