FW: Global Sieve script

Shawn Bakhtiar shashaness at hotmail.com
Fri Apr 19 12:14:22 EDT 2013


Good morning,


So......

in trying to figure this out this morning I did the following and was able to get mail filtered into techsupports SPAM folder, but I don't understand why the global sieve script does not do the same things

Created the following sieve script file (sorry I just realized i have two requires with the same info at top :S):

require ["fileinto"];
require "fileinto";
  if exists "X-Spam-Flag" {
          if header :contains "X-Spam-Flag" "NO" {
          } else {
          fileinto "user.techsupport.SPAM";
          stop;
          }
  }
if header :contains "From" "MAILER-DAEMON"
{
fileinto  "INBOX.MAILER-DAEMON";
}
if header :contains "From" "logwatch"
{
fileinto  "INBOX.Server Logs";
}
if header :contains "From" "root"
{
fileinto  "INBOX.Server Logs";
}


then:

prompt> sieveshell -u techsupport localhost
connecting to localhost
Please enter your password: 
> put techsupport.txt phpscript
> quit

Now... the test emails are going into the right folder. 

Questions, should I not be able to add global sieve rules like such?


prompt>  sieveshell localhost
connecting to localhost
Please enter your password: 
> put techsupport.txt phpscript
> quit

In my global sieve directory: /var/lib/imap/sieve/global
I have the following three files

lrwxrwxrwx 1 cyrus mail  12 2013-04-19 08:27 defaultbc -> phpscript.bc
-rw------- 1 cyrus mail 184 2013-04-19 08:26 phpscript.bc
-rw------- 1 cyrus mail 194 2013-04-19 08:26 phpscript.script

and the content of phpscript.script is:

require "fileinto";
  if exists "X-Spam-Flag" {
          if header :contains "X-Spam-Flag" "NO" {
          } else {
          fileinto "user.techsupport.SPAM";
          stop;
          }
  }


which is the one I created yesterday, and loaded using sieveshell.

any help would be greatly appreciated. 

















From: shashaness at hotmail.com
To: info-cyrus at lists.andrew.cmu.edu
Subject: Global Sieve script
Date: Wed, 17 Apr 2013 16:56:07 -0400




Good afternoon all,

I am trying to configure a global sieve script to move all incoming emails to a particular folder. According to the following link this should be a slam dunk:

http://cyrusimap.web.cmu.edu/mediawiki/index.php/Cyrus_Sieve

http://oregonstate.edu/helpdocs/e-mail/onid-e-mail/modifying-your-email-filters-using-sieveshell

So here is what I did:

[shawn at postoffice ~]$ sieveshell -u shawn localhost
connecting to localhost
Please enter your password: 
> list
phpscript  <- active script
> get phpscript phpscript.txt
> exit

[shawn at postoffice ~]$ more phpscript.txt 
# This script has been automatically generated by avelsieve
# (Sieve Mail Filters Plugin for Squirrelmail)
# Warning: If you edit this manually, then the changes will not 
# be reflected in the users' front-end!
#AVELSIEVE_VERSIONYTo0OntzOjU6Im1ham9yIjtpOjE7czo1OiJtaW5vciI7aTo5O3M6NzoicmVsZWFzZSI7aTo5O3M6Njoic3
RyaW5nIjtzOjU6IjEuOS45Ijt9
#AVELSIEVE_CREATED1342104019
#AVELSIEVE_MODIFIED1351180357
require ["fileinto","envelope","reject","vacation","imapflags","relational","comparator-i;ascii-nume
ric","regex","notify"];
#START_SIEVE_RULEYTo1OntzOjQ6ImNvbmQiO2E6MTp7aTowO2E6NTp7czo0OiJraW5kIjtzOjc6Im1lc3NhZ2UiO3M6NDoidHl
wZSI7czo2OiJoZWFkZXIiO3M6NjoiaGVhZGVyIjtzOjExOiJYLVNwYW0tRmxhZyI7czo5OiJtYXRjaHR5cGUiO3M6MjoiaXMiO3M
6MTE6ImhlYWRlcm1hdGNoIjtzOjM6IllFUyI7fX1zOjQ6InR5cGUiO3M6MToiMSI7czo5OiJjb25kaXRpb24iO3M6MzoiYW5kIjt
zOjY6ImFjdGlvbiI7czoxOiI1IjtzOjY6ImZvbGRlciI7czoxMDoiSU5CT1guU1BBTSI7fQ%3D%3DEND_SIEVE_RULE
if header :is "X-Spam-Flag" "YES"
{
fileinto  "INBOX.SPAM";
}


At this point I am a little baffled, since this should be moving all X-Spam-Flag that are YES into a folder INBOX.SPAM which does not exists at the top level (although I assume this means it should be filtered into each users individual SPAM folder). I am using Squirrelmail as a web based from end for my remote users and imagine the package manager must have installed this at some point. To simplify my life I re-wrote the script as:

require ["fileinto","envelope","reject","vacation","imapflags","relational","comparator-i;ascii-nume
ric","regex","notify"];
if exists "X-Spam-Flag" {
    if header :contains "X-Spam-Flag" "YES"
    {
    fileinto  "user.techsupport.SPAM";
    stop;
    }
}

then

[shawn at postoffice ~]$ sieveshell -u shawn localhost
connecting to localhost
Please enter your password: 
> put phpscript.txt phpscript
> list
phpscript  <- active script
> quit


However, users are still receiving emails marked as SPAM in their inbox. What I am trying to do is make it so that any and all emails marked as SPAM are redirected to a single folder called SPAM in the techsupport users mail store. 

Any help is greatly appreciated,  
Shawn












require "fileinto";
  if exists "X-Spam-Flag" {
          if header :contains "X-Spam-Flag" "NO" {
          } else {
          fileinto "user.techsupport.SPAM";
          stop;
          }
  }

 		 	   		   		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.andrew.cmu.edu/pipermail/info-cyrus/attachments/20130419/c7712c37/attachment.html 


More information about the Info-cyrus mailing list