Bash Cures Cancer
Learn the UNIX/Linux command line

Home     Man Pages     SpamDefeator


PROCMAIL(1)							  PROCMAIL(1)



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 [-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 mecha-
       nism as soon as mail arrives.  Alternatively, when installed by a sys-
       tem  administrator  (and in the standard 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 arguments are present, it starts
       to look for a file named $HOME/.procmailrc.  According to the process-
       ing 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 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 envi-
	    ronment variables, 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	vari-
	    ables  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
	    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 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 typ-
	    ically done by passing along the $@x information from  the	send-
	    mail 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.

       -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 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	 cur-
       rent  directory);  procmail  will start with the first one it finds on
       the command line.  The following ones will only be parsed if the	 pre-
       ceding  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 admin-
       istrator 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/procmail-
       rcs/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

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 assum-
			      ing that this mailbox must not be delivered to.

       Bad substitution of "x"
			      Not  a  valid  environment variable name speci-
			      fied.

       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 assign-
			      ments on the command line) or procmail had  in-
			      sufficient 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 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
			      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 strand-
			      ed 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	lock-
			      ing  calls,  one	of them failed (usually indi-
			      cates an OS error), 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) 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 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	 fin-
			      ished.

       Missing name	      The -f option needs an extra argument.

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

       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
			      message 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
			      negative,	 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 de-
			      livering the message to the file.

       Renaming bogus "x" into "x"
			      The system mailbox of the recipient  was	found
			      to  be  bogus,  procmail	performed evasive ac-
			      tions.

       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/.proc-
			      mailrc) and either 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  successful-
			      ly,  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
       Extended diagnostics can be turned on and off through setting the VER-
       BOSE 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
			      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
			      procmail	directly  (without  an	 intermediate
			      shell),  procmail	 will show where it separated
			      the arguments 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	 con-
			      dition  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
       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 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
       before 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
       children.

       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 report 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
       procmail is running under, have no  corresponding  /etc/passwd  entry,
       then  HOME will default to /, LOGNAME will default to #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 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 distin-
       guish 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 proc-
       mail 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   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

       Instead of using the system provided invocation of procmail when	 mail
       arrives, you can control the invocation of procmail yourself.  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 dou-
       ble 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	proc-
       mailex(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:
	      
		     for submitting questions/answers.
	      
		     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
	      
       Philip A. Guenther
	      



BuGless				  2001/08/27			  PROCMAIL(1)


UNIX/Linux commands referenced on this page:
  1. at
  2. file
  3. as
  4. look
  5. enable
  6. sendmail
  7. man
  8. display
  9. time
  10. accept
  11. which
  12. who
  13. watch
  14. addresses
  15. lockfile
  16. rename
  17. find
  18. write
  19. more
  20. ed
  21. last
  22. free
  23. quota
  24. date
  25. host
  26. hardlink
  27. script
  28. less
  29. kill
  30. make
  31. users
  32. link
  33. test
  34. rm
  35. cat