Provided by: filter_2.6.3-1_amd64 bug


       filter - filter incoming messages before adding to mailbox


       filter [-q] [-v] [-l] [-o output] [-f rules-file] [-m mailbox]
       filter [-n] [-f rules-file]
       filter [-r] [-o output] [-f rules-file]
       filter [-c] [-s] [-o output] [-f rules-file]
       filter [-c] [-S] [-o output] [-f rules-file]


       In  brief,  filter is designed to sort incoming mail based on user preferences for various
       recognized headers.  It logs a summary of messages filtered to a logfile.  See  the  USAGE
       section for full details.


       The flags the filter program understands are;

       -c        Clear  logs.   If  this  flag is used, the log files will be removed after being
                 summarized by either "-s" or "-S" (see below).

       -f rules-file
                 Get rules from specified file instead of default $HOME/.filter/filter-rules

       -l        Log actions only.  Do not log information about mailed messages.

       -n        Not really.  Output what would happen if given message from standard input,  but
                 don't actually do anything with it.

       -o file   Redirect  stdout  messages  to  the specified file or device.  Logging of filter
                 actions is not affected.  (This is added to more gracefully deal with changes in
                 the  file  system  (since  sendmail  is  quite  picky about modes of files being
                 redirected into.))

       -m mailbox
                 Override the compiled in definition of your primary 'mailbox'.  This is disabled
                 if filter is setgid.

       -q        Quiet.  Do not log filtering actions.

       -r        Rules.  List the rules currently being used.

       -s        Summarize.  List a summary of the message filtering log.

       -S        This   is   the   same  as  `-s'  but  includes  message-by-message  information

       -v        Verbose.  Give output on standard out for each message filtered.  May be  useful
                 to set output to ``/dev/console'' or other logging device.  (see -o).


       Filter  uses  a  set of selection rules to process incoming mail messages. These rules are
       normally read in from $HOME/.filter/filter-rules. As soon  as  a  rule  matches  something
       about  the message, that rule is used, and no further action is taken.  The general format
       for a rule is;

               if  (expression)  then  action

       where expression is:

               expression  ::=  { not }  condition  { and expression }

               condition  ::=  field  =  stringvalue
                          ::=  field  != stringvalue
                          ::=  lines  relop  numvalue
       or                 ::=  always

       These further break down as:

               field  ::=  from  |  subject  |  alphasubject  |  to  |  lines | sender

               relop  ::=  =  |  !=  |  <  |  >  |  <=  |  >=

               stringvalue  ::=  any  quoted  string

               numvalue  ::=  any  integer  value

       Note: alphasubject is a transformed version of the subject line, where  only  alpha  chars
       are  preserved,  and  they  are  forced to lower case. It is then simpler to use a regular
       expression match across a wide variety of similar subjects.

       from matches any and all of the following headers:
         "From " From: Reply-To: Sender:

       Action can be any of:

           delete              (ignore this message; throw it away)
           save  foldername    (put in 'foldername' for later)
           savecopy foldername (save a copy AND put in my inbox)
           execute  command    (pipe message to 'command')
           executec command    (copy to inbox, AND pipe to 'command')
           forward  address    (forward this message)
           forwardc address    (forward this message, AND copy to inbox)
           resend   address    (resend to new addr without change)
           leave               (just put it in my inbox)
           bounce              (say there's no such user)

       An example of a rules file would be:

           # I'll read this stuff later when I feel like it
           if (from = "") then save "~/Mail/mailinglist"
           # This mailing list actually has an x-mailing-list header
           if (mailinglist = "") then save "~/Mail/otherlist"
           # auto-archive this project's email, AND put in my current mailbox
           if (subject = "strange project") then savecopy "~/Mail/proj-archive"
           # If "make money" appears ANYWHERE in subject, upper/lowercase,
           # delete the lousy spam
           if ( subject = "make money" ) then delete
           # This person no longer shares this virtual mailbox with me.
           # Resend visibly as a "forwarded" message.
           if (to = "partner") then forward ""
           # If email for an old address comes to me, resend to new one.
           # Note that the "envelope" will show my address, but the
           # normal headers will not
           if ( to = "old_address" ) then resend"
           # Special virtual headerline derived from normal subject line
           # catches "multiple!!!wor+ds**here"
           if ( alphasubject = "multiplewordshere" ) then delete
           # If email for a special address comes to me, resend through
           # a non-standard "special" mailer
           if ( to = "special_address" ) then exec "/usr/lib/mailer special@addr"
           # The rules file doesnt really need parentheses. Or even the 'if'.
           # They are just traditional.
           subject = "silly" then bounce

       Note that all filenames must be double-quoted

       For further information about the rules language, please see The Elm Filter Guide.


       Philip Brown


       $HOME/.filter/filter-rules Default rules file
       $HOME/.filter/filterlog    A log of what has been done
       $HOME/.filter/filtersum    A summary of what has been done
       $MAIL                   IF you set this var, defines your
                               default mailbox
       /etc/passwd             Used to get users home directory


       The Elm Filter Guide (distributed with the source code)
       mail(1), mailx(1), sendmail(1,8)


       Could be smarter about pattern matching. Message body checks might be nice too.

       Please note that this was historically bundled with the elm mail reader, but  now  can  be
       found at



       Copyright 1988-1992 by The USENET Community Trust
       Derived from Elm 2.0,  Copyright 1986, 1987 by Dave Taylor