Provided by: procmail_3.22-16ubuntu3_i386 bug
 

NAME

        procmail - autonomous mail processor
 

SYNOPSIS

        procmail [-ptoY] [-f fromwhom]
             [parameter=value | rcfile] ...
        procmail [-toY] [-f fromwhom] [-a argument] ...
             -d recipient ...
        procmail [-ptY] -m [parameter=value] ...  rcfile
             [argument] ...
        procmail -v
 

DESCRIPTION

        For a quick start, see NOTES at the end.
 
        Procmail  should be invoked automatically over the .forward file mecha‐
        nism as soon as mail arrives.  Alternatively, when installed by a  sys‐
        tem  administrator,  it  can  be invoked from within the mailer immedi‐
        ately.  When invoked, it  first  sets  some  environment  variables  to
        default  values,  reads the mail message from stdin until an EOF, sepa‐
        rates the body from the header, and then, if no command line  arguments
        are  present,  it  starts  to  look for a file named $HOME/.procmailrc.
        According to the processing recipes in this file, the mail message that
        just  arrived gets distributed into the right folder (and more).  If no
        rcfile is found, or processing of the rcfile falls off the  end,  proc‐
        mail will store the mail in the default system mailbox.
 
        If  no rcfiles and no -p have been specified on the command line, proc‐
        mail will, prior to reading $HOME/.procmailrc, interpret commands  from
        /etc/procmailrc  (if  present).   Care  must  be  taken  when  creating
        /etc/procmailrc, because, if circumstances permit, it will be  executed
        with  root  privileges  (contrary  to  the  $HOME/.procmailrc  file  of
        course).
 
        If running suid root or with root privileges, procmail will be able  to
        perform  as a functionally enhanced, backwards compatible mail delivery
        agent.
 
        Procmail can also be used as a general purpose mail filter, i.e.,  pro‐
        visions  have  been  made to enable procmail to be invoked in a special
        sendmail rule.
 
        The rcfile format is described in detail in the procmailrc(5) man page.
 
        The  weighted  scoring  technique  is  described in detail in the proc     
        mailsc(5) man page.
 
        Examples for rcfile recipes can be looked up in the  procmailex(5)  man
        page.
 
    Signals
        TERMINATE   Terminate prematurely and requeue the mail.
 
        HANGUP      Terminate prematurely and bounce the mail.
 
        INTERRUPT   Terminate prematurely and bounce the mail.
 
        QUIT        Terminate prematurely and silently lose the mail.
 
        ALARM       Force a timeout (see TIMEOUT).
 
        USR1        Equivalent to a VERBOSE=off.
 
        USR2        Equivalent to a VERBOSE=on.
 

OPTIONS

        -v   Procmail  will  print its version number, display its compile time
             configuration and exit.
 
        -p   Preserve any old environment.  Normally procmail clears the  envi‐
             ronment upon startup, except for the value of TZ.  However, in any
             case: any default values will override any preexisting environment
             variables, i.e., procmail will not pay any attention to any prede‐
             fined environment variables, it will happily overwrite  them  with
             its  own  defaults.   For  the  list of environment variables that
             procmail will preset see the procmailrc(5) man page.  If  both  -p
             and  -m  are  specified,  the list of preset environment variables
             shrinks to just: LOGNAME, HOME, SHELL, ORGMAIL and MAILDIR.
 
        -t   Make procmail fail softly, i.e., if procmail  cannot  deliver  the
             mail  to  any  of  the  destinations  you  gave, the mail will not
             bounce, but will  return  to  the  mailqueue.   Another  delivery-
             attempt will be made at some time in the future.
 
        -f fromwhom
             Causes  procmail  to  regenerate  the  leading  ‘From  ’ line with
             fromwhom as the sender (instead of -f one could use the  alternate
             and  obsolete  -r).   If fromwhom consists merely of a single ‘-’,
             then procmail will only update the timestamp on the ‘From  ’  line
             (if present, if not, it will generate a new one).
 
        -o   Instead of allowing anyone to generate ‘From ’ lines, simply over‐
             ride the fakes.
 
        -Y   Assume traditional Berkeley mailbox format,  ignore  any  Content-
             Length: fields.
 
        -a argument
             This  will  set  $1  to  be equal to argument.  Each succeeding -a
             argument will set the next number variable ($2, $3, etc).  It  can
             be used to pass meta information along to procmail.  This is typi‐
             cally done by passing along the $@x information from the  sendmail
             mailer rule.
 
        -d recipient ...
             This  turns  on  explicit  delivery  mode, delivery will be to the
             local user recipient.  This, of course, only is possible if  proc‐
             mail  has  root privileges (or if procmail is already running with
             the recipient’s euid and  egid).   Procmail  will  setuid  to  the
             intended recipients and delivers the mail as if it were invoked by
             the recipient with no arguments (i.e.,  if  no  rcfile  is  found,
             delivery is like ordinary mail).  This option is incompatible with
             -p.
 
        -m   Turns procmail into a general purpose mail filter.  In  this  mode
             one  rcfile  must  be  specified  on  the command line.  After the
             rcfile, procmail will accept an unlimited number of arguments.  If
             the  rcfile  is  an  absolute path starting with /etc/procmailrcs/
             without backward references (i.e. the parent directory  cannot  be
             mentioned)  procmail  will,  only  if  no  security violations are
             found, take on the identity of the owner of the  rcfile  (or  sym‐
             bolic  link).   For  some advanced usage of this option you should
             look in the EXAMPLES section below.
 

ARGUMENTS

        Any arguments containing an ’=’ are considered to be environment  vari‐
        able  assignments,  they will all be evaluated after the default values
        have been assigned and before the first rcfile is opened.
 
        Any other arguments are presumed to be rcfile paths  (either  absolute,
        or if they start with ‘./’ relative to the current directory; any other
        relative path is relative to $HOME,  unless  the  -m  option  has  been
        given,  in  which  case  all relative paths are relative to the current
        directory); procmail will start with the first one it finds on the com‐
        mand  line.   The  following  ones will only be parsed if the preceding
        ones have a not matching HOST-directive entry, or in case  they  should
        not exist.
 
        If  no  rcfiles  are specified, it looks for $HOME/.procmailrc.  If not
        even that can be found,  processing  will  continue  according  to  the
        default settings of the environment variables and the ones specified on
        the command line.
 

EXAMPLES

        Examples for rcfile recipes can be looked up in the  procmailex(5)  man
        page.  A small sample rcfile can be found in the NOTES section below.
 
        Skip the rest of this EXAMPLES section unless you are a system adminis‐
        trator who is vaguely familiar with sendmail.cf syntax.
 
        The -m option is typically used when procmail is called from  within  a
        rule  in  the  sendmail.cf  file.  In order to be able to do this it is
        convenient to create an extra ‘procmail’  mailer  in  your  sendmail.cf
        file  (in  addition  to the perhaps already present ‘local’ mailer that
        starts up procmail).  To create such a ‘procmail’  mailer  I’d  suggest
        something like:
 
               Mprocmail, P=/usr/bin/procmail, F=mSDFMhun, S=11, R=21,
                       A=procmail -m $h $g $u
 
        This  enables you to use rules like the following (most likely in rule‐
        set 0) to filter mail through the  procmail  mailer  (please  note  the
        leading  tab  to  continue  the  rule, and the tab to separate the com‐
        ments):
 
               R$*<@some.where>$*
                       $#procmail $@/etc/procmailrcs/some.rc $:$1@some.where.procmail$2
               R$*<@$*.procmail>$*
                       $1<@$2>$3       Already filtered, map back
 
        And /etc/procmailrcs/some.rc could be as simple as:
 
               SENDER = "<$1>"                 # fix for empty sender addresses
               SHIFT = 1                       # remove it from $@
 
               :0                              # sink all junk mail
               * ^Subject:.*junk
               /dev/null
 
               :0 w                            # pass along all other mail
               ! -oi -f "$SENDER" "$@"
 
        Do watch out when sending mail from within the /etc/procmailrcs/some.rc
        file,  if  you send mail to addresses which match the first rule again,
        you could be creating an endless mail loop.
 

FILES

        /etc/passwd            to set the recipient’s LOGNAME, HOME  and  SHELL
                               variable defaults
 
        /var/mail/$LOGNAME     system  mailbox; both the system mailbox and the
                               immediate directory it is  in  will  be  created
                               every time procmail starts and either one is not
                               present
 
        /etc/procmailrc        initial global rcfile
 
        /etc/procmailrcs/      special privileges path for rcfiles
 
        $HOME/.procmailrc      default rcfile
 
        /var/mail/$LOGNAME.lock
                               lockfile for the system mailbox  (not  automati‐
                               cally  used  by procmail, unless $DEFAULT equals
                               /var/mail/$LOGNAME and procmail is delivering to
                               $DEFAULT)
 
        /usr/sbin/sendmail     default mail forwarder
 
        _????     hostname             temporary  ‘unique’ zero-length files created by
                               procmail
        procmailrc(5), procmailsc(5), procmailex(5), sh(1), csh(1), mail(1),
        mailx(1), uucp(1), aliases(5), sendmail(8), egrep(1), grep(1), biff(1),
        comsat(8), lockfile(1), formail(1), cron(1)
 

DIAGNOSTICS

        Autoforwarding mailbox found
                               The system mailbox had its suid or sgid bit set,
                               procmail terminates with EX_NOUSER assuming that
                               this mailbox must not be delivered to.
 
        Bad substitution of "x"
                               Not a valid environment variable name specified.
 
        Closing brace unexpected
                               There  was no corresponding opening brace (nest‐
                               ing block).
 
        Conflicting options    Not all option combinations are useful
 
        Conflicting x suppressed
                               Flag x is not compatible with some other flag on
                               this recipe.
 
        Couldn’t create "x"    The   system   mailbox  was  missing  and  could
                               not/will not be created.
 
        Couldn’t create maildir part "x"
                               The maildir folder "x" is missing  one  or  more
                               required  subdirectories  and procmail could not
                               create them.
 
        Couldn’t create or rename temp file "x"
                               An error occurred in the mechanics of   deliver‐
                               ing to the directory folder "x".
 
        Couldn’t determine implicit lockfile from "x"
                               There  were no ‘>>’ redirectors to be found, us‐
                               ing simply ‘$LOCKEXT’ as locallockfile.
 
        Couldn’t read "x"      Procmail was unable to open an rcfile or it  was
                               not a regular file, or procmail couldn’t open an
                               MH directory to find the highest numbered  file.
 
        Couldn’t unlock "x"    Lockfile  was  already gone, or write permission
                               to the directory where the lockfile is has  been
                               denied.
 
        Deadlock attempted on "x"
                               The  locallockfile  specified  on this recipe is
                               equal to a still active $LOCKFILE.
 
        Denying special privileges for "x"
                               Procmail will not  take  on  the  identity  that
                               comes  with the rcfile because a security viola‐
                               tion was found (e.g.  -p or variable assignments
                               on  the  command  line) or procmail had insuffi‐
                               cient privileges to do so.
 
        Descriptor "x" was not open
                               As procmail was started, stdin, stdout or stderr
                               was  not  connected (possibly an attempt to sub‐
                               vert security)
 
        Enforcing stricter permissions on "x"
                               The system mailbox of the recipient was found to
                               be unsecured, procmail secured it.
 
        Error while writing to "x"
                               Nonexistent  subdirectory,  no write permission,
                               pipe died or disk full.
 
        Exceeded LINEBUF       Buffer overflow detected, LINEBUF was too small,
                               PROCMAIL_OVERFLOW has been set.
 
        MAILDIR is not an absolute path
 
        MAILDIR path too long
 
        ORGMAIL is not an absolute path
 
        ORGMAIL path too long
 
        default rcfile is not an absolute path
 
        default rcfile path too long
                               The  specified  item’s full path, when expanded,
                               was longer than LINEBUF or didn’t start  with  a
                               file separator.
 
        Excessive output quenched from "x"
                               The  program  or filter "x" tried to produce too
                               much output for the current  LINEBUF,  the  rest
                               was  discarded  and  PROCMAIL_OVERFLOW  has been
                               set.
 
        Extraneous x ignored   The action line or other flags  on  this  recipe
                               makes flag x meaningless.
 
        Failed forking "x"     Process  table  is full (and NORESRETRY has been
                               exhausted).
 
        Failed to execute "x"  Program not in path, or not executable.
 
        Forced unlock denied on "x"
                               No write permission in the directory where lock     
                               file "x" resides, or more than one procmail try‐
                               ing to force a lock at exactly the same time.
 
        Forcing lock on "x"    Lockfile "x" is going to be removed by force be‐
                               cause of a timeout (see also: LOCKTIMEOUT).
 
        Incomplete recipe      The start of a recipe was found, but it stranded
                               in an EOF.
 
        Insufficient privileges
                               Procmail either needs root privileges,  or  must
                               have  the  right (e)uid and (e)gid to run in de‐
                               livery mode.  The mail will bounce.
 
        Invalid regexp "x"     The regular expression "x" contains errors (most
                               likely some missing or extraneous parens).
 
        Kernel-lock failed     While trying to use the kernel-supported locking
                               calls, one of them failed (usually indicates  an
                               OS  error), procmail ignores this error and pro‐
                               ceeds.
 
        Kernel-unlock failed   See above.
 
        Lock failure on "x"    Can only occur if you specify  some  real  weird
                               (and  illegal)  lockfilenames or if the lockfile
                               could not be  created  because  of  insufficient
                               permissions or nonexistent subdirectories.
 
        Lost "x"               Procmail  tried  to  clone  itself but could not
                               find back rcfile "x" (it either got  removed  or
                               it was a relative path and you changed directory
                               since procmail opened it last time).
 
        Missing action         The current recipe was found to be incomplete.
 
        Missing closing brace  A nesting block was started, but never finished.
 
        Missing name           The -f option needs an extra argument.
 
        Missing argument       You specified the -a option but forgot the argu‐
                               ment.
 
        Missing rcfile         You specified the -m  option,  procmail  expects
                               the name of an rcfile as argument.
 
        Missing recipient      You  specified  the -d option or called procmail
                               under a different name, it expects one  or  more
                               recipients as arguments.
 
        No space left to finish writing "x"
                               The  filesystem  containing  "x"  does  not have
                               enough free space to permit delivery of the mes‐
                               sage to the file.
 
        Out of memory          The  system is out of swap space (and NORESRETRY
                               has been exhausted).
 
        Processing continued   The unrecognised options on the command line are
                               ignored, proceeding as usual.
 
        Program failure (nnn) of "x"
                               Program  that  was  started by procmail returned
                               nnn instead of EXIT_SUCCESS (=0); if nnn is neg‐
                               ative,  then this is the signal the program died
                               on.
 
        Quota exceeded while writing "x"
                               The filesize quota  for  the  recipient  on  the
                               filesystem containing "x" does not permit deliv‐
                               ering the message to the file.
 
        Renaming bogus "x" into "x"
                               The system mailbox of the recipient was found to
                               be bogus, procmail performed evasive actions.
 
        Rescue of unfiltered data succeeded/failed
                               A filter returned unsuccessfully, procmail tried
                               to get back the original text.
 
        Skipped: "x"           Couldn’t do anything  with  "x"  in  the  rcfile
                               (syntax error), ignoring it.
 
        Suspicious rcfile "x"  The owner of the rcfile was not the recipient or
                               root, the file was world writable, or the direc‐
                               tory  that  contained  it was world writable, or
                               this was the default rcfile  ($HOME/.procmailrc)
                               and either it was group writable or the directo‐
                               ry that contained it was group writable (the rc‐
                               file was not used).
 
        Terminating prematurely whilst waiting for ...
                               Procmail  received a signal while it was waiting
                               for ...
 
        Timeout, terminating "x"
                               Timeout has occurred on program or filter "x".
 
        Timeout, was waiting for "x"
                               Timeout has occurred on program, filter or  file
                               "x".   If  it  was  a program or filter, then it
                               didn’t seem to be running anymore.
 
        Truncated file to former size
                               The file could not be delivered to successfully,
                               so the file was truncated to its former size.
 
        Truncating "x" and retrying lock
                               "x"  does not seem to be a valid filename or the
                               file is not empty.
 
        Unable to treat as directory "x"
                               Either the suffix on "x" would indicate that  it
                               should  be  an  MH  or maildir folder, or it was
                               listed as an second folder into which  to  link,
                               but it already exists and is not a directory.
 
        Unexpected EOL         Missing  closing quote, or trying to escape EOF.
 
        Unknown user "x"       The specified recipient does not have  a  corre‐
                               sponding uid.
        Extended  diagnostics can be turned on and off through setting the VER‐
        BOSE variable.
 
        [pid] time & date      Procmail’s pid and a timestamp.  Generated when‐
                               ever  procmail  logs a diagnostic and at least a
                               second has elapsed since the last timestamp.
 
        Acquiring kernel-lock  Procmail now tries to kernel-lock the  most  re‐
                               cently opened file (descriptor).
 
        Assigning "x"          Environment variable assignment.
 
        Assuming identity of the recipient, VERBOSE=off
                               Dropping  all  privileges  (if  any), implicitly
                               turns off extended diagnostics.
 
        Bypassed locking "x"   The mail spool directory was not  accessible  to
                               procmail, it relied solely on kernel locks.
 
        Executing "x"          Starting program "x".  If it is started by proc‐
                               mail directly (without an  intermediate  shell),
                               procmail  will show where it separated the argu‐
                               ments by inserting commas.
 
        HOST mismatched "x"    This host was called "x", HOST  contained  some‐
                               thing else.
 
        Locking "x"            Creating lockfile "x".
 
        Linking to "x"         Creating a hardlink between directory folders.
 
        Match on "x"           Condition matched.
 
        Matched "x"            Assigned "x" to MATCH.
 
        No match on "x"        Condition didn’t match, recipe skipped.
 
        Non-zero exitcode (nnn) by "x"
                               Program that was started by procmail as a condi‐
                               tion or as the action of a recipe with  the  ‘W’
                               flag  returned nnn instead of EXIT_SUCCESS (=0);
                               the usage indicates that this is not an entirely
                               unexpected condition.
 
        Notified comsat: "$LOGNAME@offset:file"
                               Sent  comsat/biff a notice that mail arrived for
                               user $LOGNAME at ‘offset’ in ‘file’.
 
        Opening "x"            Opening file "x" for appending.
 
        Rcfile: "x"            Rcfile changed to "x".
 
        Reiterating kernel-lock
                               While attempting several locking methods, one of
                               these  failed.   Procmail  will  reiterate until
                               they all succeed in rapid succession.
 
        Score: added newtotal "x"
                               This condition scored ‘added’ points, which  re‐
                               sulted in a ‘newtotal’ score.
 
        Unlocking "x"          Removing lockfile "x" again.
 

WARNINGS

        You  should create a shell script that uses lockfile(1) before invoking
        your mail shell on any mailbox file other than the system mailbox  (un‐
        less of course, your mail shell uses the same lockfiles (local or glob‐
        al) you specified in your rcfile).
 
        In the unlikely event that you absolutely need to kill procmail  before
        it  has finished, first try and use the regular kill command (i.e., not
        kill -9, see the subsection Signals for  suggestions),  otherwise  some
        lockfiles might not get removed.
 
        Beware  when  using  the -t option, if procmail repeatedly is unable to
        deliver the mail  (e.g.,  due  to  an  incorrect  rcfile),  the  system
        mailqueue  could fill up.  This could aggravate both the local postmas‐
        ter and other users.
 
        The /etc/procmailrc file might be executed with root privileges, so  be
        very careful of what you put in it.  SHELL will be equal to that of the
        current recipient, so if procmail has to invoke the shell, you’d better
        set it to some safe value first.  See also: DROPPRIVS.
 
        Keep  in  mind that if chown(1) is permitted on files in /etc/procmail     
        rcs/, that they can be chowned to root (or anyone else) by  their  cur‐
        rent  owners.   For  maximum security, make sure this directory is exe‐
        cutable to root only.
 
        Procmail is not the proper tool for  sharing  one  mailbox  among  many
        users,  such  as when you have one POP account for all mail to your do‐
        main. It can be done if you manage to configure your MTA  to  add  some
        headers  with the envelope recipient data in order to tell Procmail who
        a message is for, but this is usually not the right thing to do.   Per‐
        haps  you want to investigate if your MTA offers ‘virtual user tables’,
        or check out the ‘multidrop’ facility of Fetchmail.
 

BUGS

        After removing a lockfile by force, procmail waits $SUSPEND seconds be‐
        fore  creating  a  new lockfile so that another process that decides to
        remove the stale lockfile will not remove the  newly  created  lock  by
        mistake.
 
        Procmail  uses  the  regular  TERMINATE signal to terminate any runaway
        filter, but it does not check if the filter responds to that signal and
        it only sends it to the filter itself, not to any of the filter’s chil‐
        dren.
 
        A continued Content-Length: field is not handled correctly.
 
        The embedded newlines in a continued  header  should  be  skipped  when
        matching instead of being treated as a single space as they are now.
 

MISCELLANEOUS

        If there is an existing Content-Length: field in the header of the mail
        and the -Y option is not specified, procmail will trim the field to re‐
        port the correct size.  Procmail does not change the fieldwidth.
 
        If  there  is no Content-Length: field or the -Y option has been speci‐
        fied and procmail appends to regular mailfolders, any lines in the body
        of the message that look like postmarks are prepended with ‘>’ (disarms
        bogus mailheaders).  The regular expression that is used to search  for
        these postmarks is:
               ‘\nFrom ’
 
        If  the  destination  name  used  in  explicit  delivery mode is not in
        /etc/passwd, procmail will proceed as if explicit delivery mode was not
        in  effect.   If not in explicit delivery mode and should the uid proc‐
        mail is running under, have no corresponding  /etc/passwd  entry,  then
        HOME  will  default  to /, LOGNAME will default to #uid, SHELL will de‐
        fault to /bin/sh, and ORGMAIL will default to /tmp/dead.letter.
 
        When in explicit delivery mode, procmail will generate a leading  ‘From
        ’  line  if  none  is present.  If one is already present procmail will
        leave it intact.  If procmail is not invoked with one of the  following
        user  or  group  ids :  root,  daemon, uucp, mail, x400, network, list,
        slist, lists or news, but still has to generate or accept a new ‘From ’
        line,  it will generate an additional ‘>From ’ line to help distinguish
        fake mails.
 
        For security reasons procmail will only use an absolute or  $HOME-rela‐
        tive  rcfile  if  it  is  owned  by  the  recipient  or root, not world
        writable, and the directory it is contained in is not  world  writable.
        The  $HOME/.procmailrc  file has the additional constraint of not being
        group-writable or in a group-writable directory.
 
        If /var/mail/$LOGNAME is a bogus mailbox (i.e., does not belong to  the
        recipient,  is unwritable, is a symbolic link or is a hard link), proc‐
        mail will upon startup try to rename it into a file starting with  ‘BO‐
        GUS.$LOGNAME.’ and ending in an inode-sequence-code.  If this turns out
        to be impossible, ORGMAIL will have no initial value,  and  hence  will
        inhibit delivery without a proper rcfile.
 
        If /var/mail/$LOGNAME already is a valid mailbox, but has got too loose
        permissions on it, procmail will correct  this.   To  prevent  procmail
        from doing this make sure the u+x bit is set.
 
        When  delivering  to  directories,  MH folders, or maildir folders, you
        don     t need to use lockfiles to  prevent  several  concurrently  running
        procmail programs from messing up.
 
        Delivering  to MH folders is slightly more time consuming than deliver‐
        ing to normal directories or mailboxes, because procmail has to  search
        for  the  next available number (instead of having the filename immedi‐
        ately available).
 
        On general failure procmail will return EX_CANTCREAT, unless option  -t
        is specified, in which case it will return EX_TEMPFAIL.
 
        To  make  ‘egrepping’ of headers more consistent, procmail concatenates
        all continued header fields; but only internally.  When delivering  the
        mail, line breaks will appear as before.
 
        If  procmail is called under a name not starting with ‘procmail’ (e.g.,
        if it is linked to another name and invoked as such), it  comes  up  in
        explicit  delivery  mode,  and expects the recipients’ names as command
        line arguments (as if -d had been specified).
 
        Comsat/biff notifications are done using udp.  They are sent  off  once
        when  procmail  generates  the regular logfile entry.  The notification
        messages have the following extended format (or as close as you can get
        when final delivery was not to a file):
               $LOGNAME@offset_of_message_in_mailbox:absolute_path_to_mailbox
 
        Whenever  procmail  itself  opens a file to deliver to, it consistently
        uses the following kernel locking strategies: fcntl(2).
 
        Procmail is NFS-resistant and eight-bit clean.
 

NOTES

        Calling up procmail with the -h or -? options will cause it to  display
        a command-line help and recipe flag quick-reference page.
 
        There exists an excellent newbie FAQ about mailfilters (and procmail in
        particular); it is maintained by Nancy McGough <nancym@ii.com> and  can
        be obtained by sending a mail to mail-server@rtfm.mit.edu with the fol‐
        lowing in the body:
               send usenet/news.answers/mail/filtering-faq
 
        If procmail is not installed globally  as  the  default  mail  delivery
        agent  (ask your system administrator), you have to make sure it is in‐
        voked when your mail arrives.  In this case  your  $HOME/.forward  (be‐
        ware,  it has to be world readable) file should contain the line below.
        Be sure to include the single and double quotes, and  unless  you  know
        your  site to be running smrsh (the SendMail Restricted SHell), it must
        be an absolute path.
 
        "|exec /usr/bin/procmail"
 
        Some mailers (notably exim) do not currently accept the  above  syntax.
        In such case use this instead:
 
        |/usr/bin/procmail
 
        Procmail  can  also  be invoked to postprocess an already filled system
        mailbox.  This can be useful if you  don’t  want  to  or  can’t  use  a
        $HOME/.forward  file (in which case the following script could periodi‐
        cally be called from within cron(1),  or  whenever  you  start  reading
        mail):
 
               #!/bin/sh
 
               ORGMAIL=/var/mail/$LOGNAME
 
               if cd $HOME &&
                test -s $ORGMAIL &&
                lockfile -r0 -l1024 .newmail.lock 2>/dev/null
               then
                 trap "rm -f .newmail.lock" 1 2 3 13 15
                 umask 077
                 lockfile -l1024 -ml
                 cat $ORGMAIL >>.newmail &&
                  cat /dev/null >$ORGMAIL
                 lockfile -mu
                 formail -s procmail <.newmail &&
                  rm -f .newmail
                 rm -f .newmail.lock
               fi
               exit 0
 
    A sample small $HOME/.procmailrc:
        PATH=/usr/local/bin:/usr/bin:/bin
        MAILDIR=$HOME/Mail      #you’d better make sure it exists
        DEFAULT=$MAILDIR/mbox   #completely optional
        LOGFILE=$MAILDIR/from   #recommended
 
        :0:
        * ^From.*berg
        from_me
 
        :0
        * ^Subject:.*Flame
        /dev/null
 
        Other examples for rcfile recipes can be looked up in the procmailex(5)
        man page.
 

SOURCE

        This program is part of the  procmail  mail-processing-package  (v3.22)
        available  at http://www.procmail.org/ or ftp.procmail.org in pub/proc     
        mail/.
 

MAILINGLIST

        There exists a mailinglist for questions relating to any program in the
        procmail package:
               <procmail-users@procmail.org>
                      for submitting questions/answers.
               <procmail-users-request@procmail.org>
                      for subscription requests.
 
        If  you  would  like  to  stay informed about new versions and official
        patches send a subscription request to
               procmail-announce-request@procmail.org
        (this is a readonly list).
 

AUTHORS

        Stephen R. van den Berg
               <srb@cuci.nl>
        Philip A. Guenther
               <guenther@sendmail.com>