> i need to take all the emails with header containing [SPAM?] 
> and move them to a folder in the maildir of each user named 
> Maildir/.SPAM
<snip>
> Reading the doc and spec of exim seems that there's another 
> way using either a router or a directive named 
> transport_filter in the transport that writes to disk.
> 
> Nevertheless i was unable along the evening to make it run. I 
> would like to get some thought from the list.

My example following does not do precisely what you request;
but it covers the basic idea using two different Headers (rather 
than subject line marker) to place the files into either of
three locations beneath MAIL_DIR_PATH:

  zhighspam   (high scoring spam "catch" user directory)
  zspammail   (lower scoring spam "catch" user directory)
  username    (directory for each user

In each case the file name is constructed as 
'qBASE62ENC_TIME_OF_DAY-XXXXXX.msg' (there's an
overcomplicated test in directory_file for the 
extension because in an ealier version I changed
that based on Spam score too.

So my mail is delivered based on Username, or to one of
two spam 'usernames' to pre-sort the mail for review:

# from my transports section:

local_delivery:
  driver = appendfile
  directory = /MAIL_DIR_PATH/${if def:h_X-HighSpam:\ 
        {zhighspam}{${if def:h_X-Spam-Mail: \
      {zspammail}{$local_part}}}}
  directory_file = q${base62:$tod_epoch}-$inode.\
       ${if def:h_X-SuperSpam:{msg}\
      {${if def:h_X-Spam-Mail:{msg}{msg}}}}
  delivery_date_add
  envelope_to_add
  return_path_add
# group = mail
  initgroups = no
  mode = 0666
  mode_fail_narrower = no
  check_group = no
  check_owner = no
        

# 'group' is commented out because I am running on Cygwin
and don't seem to need such complications.


#I have ACL DATA warnings to add the needed Headers:

warn  message = X-Spam-Mail: yes
    condition = ${if <{$message_size}{250k}{1}{0}}
         spam = herbm/defer_ok

# 12.0+ point spam                              
warn  message = X-HighSpam: Message exceeded spam score threshhold.
    condition = ${if <{$message_size}{250k}{1}{0}}
         spam = herbm:true/defer_ok
          condition = ${if >{$spam_score_int}{120}{1}{0}}

...etc....

I hope it gives you some help and some ideas.

--
Herb Martin




# FYI:  I also add the "score" with the spam marker (***)
to the subject line of each mail (in the ACL DATA checks):

warn  message = Subject: ***** SPAM *****__$spam_score $h_subject
    condition = ${if <{$message_size}{250k}{1}{0}}
    condition = ${if <{$spam_score_int}{100}{1}{0}}
         spam = herbm/defer_ok
                                
warn  message = Subject: ***** SPAM *****_$spam_score $h_subject
    condition = ${if <{$message_size}{250k}{1}{0}}
    condition = ${if >{$spam_score_int}{99}{1}{0}}
    condition = ${if <{$spam_score_int}{1000}{1}{0}}
         spam = herbm/defer_ok
                                
warn  message = Subject: ***** SPAM *****$spam_score $h_subject
    condition = ${if <{$message_size}{250k}{1}{0}}
    condition = ${if >{$spam_score_int}{999}{1}{0}}
         spam = herbm/defer_ok


-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/

Reply via email to