[ingo] URGENT Compatibility Problem between Cyrus and Ingo (Whitelist sieve)

Jan Schneider jan at horde.org
Tue Jul 31 12:17:40 UTC 2007

Zitat von "Chr. v. Stuckrad" <stucki at mi.fu-berlin.de>:

> Hi!
> I'm new to the list, because I'm postmaster of {math/inf/mi}.fu-berlin.de
> and we recently installed a cyrus mailstore and then ingo to generate
> sieve filter rules in/on that cyrus.
> Way to late I realized a semantic incompatibility between the two
> following installed methods (1,2) of delivering our mail:
> What happens is:
> 1) the MTA puts Spam (tagged by spamassassin) into <USER+spam at mailstore>
> which cyurus interprets as
> - "if not filtered elsewhere, put into Box named 'spam' foer USER"
> 2) INGO creates a 'whitelist' using  sieve clause which does (something like)
> - "if ...adress... is ...in.... then ***keep***"
> 3) This 'keep' is interpreted by cyrus/sieve as
> - "do the default action, as if there was no sieve script"
> The result is - *NO* WHITELIST - any more, because "keep" results in
> accepting the MTA's default "+spam".  Of course Uers complain ;-)

I'm not sure I was able to follow you completely, but from what you  
write the result should be "no spam filtering anymore", and only  
whitelisted addresses should be affected, which is the expected  

> Now I seem to have two ways out
> A) eighter revoking the whole concept of letting the MTA decide on '+spam',
>    THEN I'd need a default ingo script/database-entry per User
>    *pre*installed to have the spamfilter on-by-default, or
> B) I somehow patch the 'whitelist-Sieve-Script' to
>    use 'fileinto INBOX' instead of 'keep' to safely avoid false-positives.
> I'd prefer the latter option, but could not find out how, beause
> the definitions of the whitelist-scripting rely heavily on defaults
> inside ingo, so I could not find the place to patch/adapt it.
> Is somebody on the list, who is deep enough into 'ingo-coding' to
> help me, or is there another way to switch 'whitelist's behaviour?

There are two options: either change  
Ingo_Script_sieve::_getWhitelistBlocks() to create the "fileinto" rule  
instead of the "keep" rule. Or change the  
INGO_STORAGE_ACTION_WHITELIST case in Ingo_Script_sieve::generate() to  
look more like the INGO_STORAGE_ACTION_MOVE case.


Do you need professional PHP or Horde consulting?

More information about the ingo mailing list