procmail
PROCMAIL(L)                                           PROCMAIL(L)



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 mechanism as soon as  mail  arrives.   Alternatively,
       when  installed  by  a  system  administrator,  it  can be
       invoked from within the mailer immediately.  When invoked,
       it  first  sets some environment variables to default val-
       ues, 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,  procmail  will  store the mail in the default system
       mailbox.

       If no rcfiles and no -p have been specified on the command
       line,  procmail  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, back-
       wards compatible mail delivery agent.

       Procmail can also be used as a general purpose  mail  fil-
       ter, i.e., provisions have been made to enable procmail to
       be invoked in a special sendmail rule.

       The rcfile format is described  in  detail  in  the  proc-
       mailrc(c) man page.

       The  weighted  scoring technique is described in detail in
       the procmailsc(c) man page.

       Examples for rcfile recipes can be looked up in the  proc-
       mailex(x) 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 environment upon startup, except  for  the
            value  of TZ.  However, in any case: any default val-
            ues will override any preexisting  environment  vari-
            ables,  i.e.,  procmail will not pay any attention to
            any predefined environment variables, it will happily
            overwrite  them  with its own defaults.  For the list
            of environment variables that  procmail  will  preset
            see  the  procmailrc(c)  man page.  If both -p and -m
            are specified, the list of preset  environment  vari-
            ables  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 proc-
            mail 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 override 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  suc-
            ceeding -a argument will set the next number variable
            ($2, $3, etc).  It can be used to pass meta  informa-
            tion  along  to  procmail.  This is typically 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 procmail 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 com-
            mand 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 vio-
            lations are found, take on the identity of the  owner
            of  the rcfile (or symbolic link).  For some advanced
            usage of this option you should look in the  EXAMPLES
            section  below..SH ARGUMENTS Any arguments containing
            an '=' are  considered  to  be  environment  variable
            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 direc-
       tory); procmail will start with the first one it finds  on
       the  command 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/.proc-
       mailrc.  If not even that can be  found,  processing  will
       continue according to the default settings of the environ-
       ment variables and the ones specified on the command line.

EXAMPLES
       Examples  for rcfile recipes can be looked up in the proc-
       mailex(x) 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 administrator who is vaguely  familiar  with  send-
       mail.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 ruleset 0) to filter mail through  the  procmail
       mailer  (please note the leading tab to continue the rule,
       and the tab to separate the comments):

              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/proc-
       mailrcs/some.rc  file, if you send mail to addresses which
       match the first rule again, you could be creating an  end-
       less 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 automatically  used  by  proc-
                              mail,    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

SEE ALSO
       procmailrc(c), procmailsc(c), procmailex(x), sh(h),
       csh(h), mail(l), mailx(x), binmail(l), uucp(p),
       aliases(s), sendmail(l), egrep(p), grep(p), biff(f),
       comsat(t), lockfile(e), formail(l), cron(n)










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 (nesting 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   delivering  to  the  directory
                              folder "x".

       Couldn't determine implicit lockfile from "x"
                              There were no `>>'  redirectors  to
                              be  found,  using simply `$LOCKEXT'
                              as locallockfile.

       Couldn't read "x"      Procmail was unable to open an  rc-
                              file  or it was not a regular file,
                              or procmail couldn't open an MH di-
                              rectory  to  find  the highest num-
                              bered 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 iden-
                              tity that comes with the rcfile be-
                              cause  a  security  violation   was
                              found (e.g.  -p or variable assign-
                              ments on the command line) or proc-
                              mail had insufficient privileges to
                              do so.



       Descriptor "x" was not open
                              As  procmail  was  started,  stdin,
                              stdout  or stderr was not connected
                              (possibly an attempt to subvert se-
                              curity)

       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  dis-
                              carded  and  PROCMAIL_OVERFLOW  has
                              been set.

       Extraneous x ignored   The action line or other  flags  on
                              this  recipe  makes flag x meaning-
                              less.

       Failed forking "x"     Process table is full  (and  NORES-
                              RETRY has been exhausted).

       Failed to execute "x"  Program  not  in  path, or not exe-
                              cutable.

       Forced unlock denied on "x"
                              No write permission in the directo-
                              ry  where  lockfile "x" resides, or
                              more than one  procmail  trying  to
                              force  a  lock  at exactly the same
                              time.








       Forcing lock on "x"    Lockfile "x" is going to be removed
                              by  force because 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 privi-
                              leges,  or  must  have  the   right
                              (e)uid  and (e)gid to run in deliv-
                              ery 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-sup-
                              ported  locking  calls, one of them
                              failed (usually indicates an OS er-
                              ror),  procmail  ignores this error
                              and proceeds.

       Kernel-unlock failed   See above.

       Lock failure on "x"    Can only occur if you specify  some
                              real  weird (and illegal) lockfile-
                              names or if the lockfile could  not
                              be  created because of insufficient
                              permissions or  nonexistent  subdi-
                              rectories.

       Lost "x"               Procmail  tried to clone itself but
                              could not find back rcfile "x"  (it
                              either got removed or it was a rel-
                              ative path and you changed directo-
                              ry  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  argu-
                              ment.

       Missing argument       You  specified  the  -a  option but
                              forgot the argument.

       Missing rcfile         You specified the -m option,  proc-
                              mail  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 recip-
                              ients as arguments.







       No space left to finish writing "x"
                              The  filesystem containing "x" does
                              not have enough free space to  per-
                              mit  delivery of the message to the
                              file.

       Out of memory          The system is  out  of  swap  space
                              (and  NORESRETRY  has been exhaust-
                              ed).

       Processing continued   The  unrecognised  options  on  the
                              command  line are ignored, proceed-
                              ing as usual.

       Program failure (nnn) of "x"
                              Program that was started  by  proc-
                              mail  returned  nnn  instead of EX-
                              IT_SUCCESS (=0); if  nnn  is  nega-
                              tive,  then  this is the signal the
                              program died on.

       Quota exceeded while writing "x"
                              The filesize quota for the  recipi-
                              ent  on  the  filesystem containing
                              "x" does not permit delivering  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 directory
                              that   contained   it   was   world
                              writable,  or  this was the default
                              rcfile ($HOME/.procmailrc) and  ei-
                              ther  it  was group writable or the
                              directory  that  contained  it  was
                              group  writable (the rcfile 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 trun-
                              cated 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 in-
                              dicate 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 corresponding uid.

EXTENDED DIAGNOSTICS
       Extended diagnostics can be turned on and off through set-
       ting the VERBOSE variable.

       [pid] time & date      Procmail's  pid  and  a  timestamp.
                              Generated whenever procmail logs  a
                              diagnostic  and  at  least a second
                              has elapsed since the  last  times-
                              tamp.

       Acquiring kernel-lock  Procmail  now  tries to kernel-lock
                              the most recently opened file  (de-
                              scriptor).

       Assigning "x"          Environment variable assignment.

       Assuming identity of the recipient, VERBOSE=off
                              Dropping  all  privileges (if any),
                              implicitly turns off extended diag-
                              nostics.

       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 procmail directly (with-
                              out  an  intermediate shell), proc-
                              mail will show where  it  separated
                              the  arguments by inserting commas.







       HOST mismatched "x"    This host was called "x", HOST con-
                              tained something else.

       Locking "x"            Creating lockfile "x".

       Linking to "x"         Creating  a hardlink between direc-
                              tory 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 proc-
                              mail as a condition or as  the  ac-
                              tion  of a recipe with the `W' flag
                              returned nnn instead  of  EXIT_SUC-
                              CESS (=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  `off-
                              set' 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 resulted in a `newto-
                              tal' score.

       Unlocking "x"          Removing lockfile "x" again.

WARNINGS
       You should create a shell script that uses lockfile(e) be-
       fore  invoking  your  mail shell on any mailbox file other
       than the system mailbox (unless of course, your mail shell
       uses the same lockfiles (local or global) 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  subsec-
       tion  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 rc-
       file), the system mailqueue could fill up.  This could ag-
       gravate both the local postmaster and other users.

       The /etc/procmailrc file might be executed with root priv-
       ileges, 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(n) is permitted on files in
       /etc/procmailrcs/, that they can be chowned  to  root  (or
       anyone else) by their current owners.  For maximum securi-
       ty, make sure this directory is executable 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 domain. It can be done if you  manage
       to  configure  your MTA to add some headers with the enve-
       lope recipient data in order to tell Procmail who  a  mes-
       sage  is  for,  but this is usually not the right thing to
       do.  Perhaps you want to investigate if  your  MTA  offers
       `virtual user tables', or check out the `multidrop' facil-
       ity of Fetchmail.

BUGS
       After removing a lockfile by force, procmail  waits  $SUS-
       PEND seconds before creating a new lockfile so that anoth-
       er 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 children.

       A continued Content-Length: field is not handled  correct-
       ly.

       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 head-
       er of the mail and the -Y option is not  specified,  proc-
       mail  will  trim  the  field  to  report the correct size.
       Procmail does not change the fieldwidth.

       If there is no Content-Length: field or the -Y option  has
       been  specified  and procmail appends to regular mailfold-
       ers, any lines in the body of the message that  look  like
       postmarks  are prepended with `>' (disarms bogus mailhead-
       ers).  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 de-
       livery mode and should the uid procmail 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 al-
       ready 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-relative rcfile if it is owned by the  recipient  or
       root,  not  world  writable,  and the directory it is con-
       tained 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), procmail will upon startup try to  re-
       name  it  into  a file starting with `BOGUS.$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 sever-
       al concurrently running procmail programs from messing up.

       Delivering to MH folders is slightly more  time  consuming
       than  delivering  to  normal directories or mailboxes, be-
       cause procmail has to search for the next available number
       (instead of having the filename immediately available).

       On  general failure procmail will return EX_CANTCREAT, un-
       less 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  inter-
       nally.   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 in-
       voked 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  ex-
       tended  format  (or as close as you can get when final de-
       livery 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(l).

       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 following 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 invoked when  your  mail  arrives.   In
       this  case your $HOME/.forward (beware, 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  periodically be called from
       within cron(n), 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(x) man page.

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

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>



BuGless                     2001/08/27                PROCMAIL(L)