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 [-toY] [-a  argument] -z
       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 (and in the stan­
       dard Red Hat Linux configuration), it can be invoked  from
       within  the  mailer  immediately.   When invoked, it first
       sets some environment variables to default  values,  reads
       the  mail  message  from stdin until an EOF, separates the
       body from the header, and then, if no command  line  argu­
       ments  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 dis­
       tributed 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  mail­
       box.

       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(5) man page.

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

       mailex(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  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(5) 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).

            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.

       -z   This turns on LMTP mode, wherein procmail acts as  an
            RFC2033  LMTP  server.   Delivery  takes place in the
            same  manner and under the same restrictions  as  the
            delivery  mode  enabled   with  -d.   This  option is
            incompatible with -p and -f.


ARGUMENTS

       Any arguments containing an '=' are considered to be envi­
       ronment  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

       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(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 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

       less mail loop.


FILES

       /etc/passwd            to  set  the  recipient's  LOGNAME,
                              HOME and SHELL variable defaults

       /var/spool/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/spool/mail/$LOGNAME.lock
                              lockfile  for  the  system  mailbox
                              (not automatically  used  by  proc­
                              mail,    unless   $DEFAULT   equals
                              /var/spool/mail/$LOGNAME and  proc­
                              mail is delivering to $DEFAULT)

       /usr/sbin/sendmail     default mail forwarder

       _????`hostname`        temporary    `unique'   zero-length
                              files created by procmail


SEE ALSO

       procmailrc(5), procmailsc(5), procmailex(5), sh(1),
       csh(1), mail(1), mailx(1), binmail(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.

                              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.

                              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.

       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).

                              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).

                              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.

                              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.

                              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.


       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(1) 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


       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(1) 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 see check  out  the  `multidrop'
       facility 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.

       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 the numeric uid,
       SHELL will default 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/spool/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
       rename 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/spool/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­


       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:
       lockf(3).

       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  being  maintained  by
       Nancy McGough <nancym@ii.com> and can be obtained by send­
       ing a mail to mail-server@rtfm.mit.edu with the  following
       in the body:
              send usenet/news.answers/mail/filtering-faq

       Instead  of  using the system provided invocation of proc­
       mail when mail arrives, you can control the invocation  of
       procmail  yourself.  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


       "|exec /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(1), or whenever you start reading mail):

              #!/bin/sh

              ORGMAIL=/var/spool/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=/bin:/usr/bin:/usr/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-pack­
       age  (v3.21)  available  at  http://www.procmail.org/   or
       ftp.procmail.org in pub/procmail/.

       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>


Man(1) output converted with man2html