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