slocal man page on Ultrix

Man page or keyword search:  
man Server   3690 pages
apropos Keyword Search (all sections)
Output format
Ultrix logo
[printable version]

slocal(1mh)							   slocal(1mh)

Name
       slocal - MH receive-mail hooks

Syntax
       slocal  $HOME/.maildelivery [ -form formfile ] [ switches for ] address
       ...  [ -help ]

       /usr/lib/mh/rcvpack file [ -help ]

       /usr/lib/mh/rcvtty [ command ...	 ] [ -help ]

Description
       A receive-mail hook is a program that is run  whenever  you  receive  a
       mail  message.	You  do not invoke the hook yourself; it is invoked on
       your behalf by when you include the following line in your file in your
       home directory:
       | /usr/lib/mh/slocal -user $USER

       The  file, which is an ordinary ASCII file, controls how local delivery
       is performed.  This file is read by

       The format of each line in the file is:
       field pattern action result string

       These components are explained below:

       field:	 The name of a field that is to be  searched  for  a  pattern.
		 This is any field in the headers of the message that might be
		 present.  In addition, the following special fields are  also
		 defined:

		 source: the out-of-band sender information

		 addr:	the  address  that  was	 used to cause delivery to the
		 recipient

		 default: this matches only if the message has not been deliv‐
		 ered yet

		 *: this always matches

       pattern:	 The  sequence	of characters to match in the specified field.
		 Matching is  case-insensitive	but  not  Regular  Expression-
		 based.

       action:	 The  action  to  take to deliver the message.	This is one of
		 the following:

		 file or >:

		 Append the message to the file	 named	by  string  using  the
		 standard  maildrop  delivery  process.	 If the message can be
		 appended to the file, then this action succeeds.  When	 writ‐
		 ing to the file, a new field is added:
		 Delivery-Date: <date>
		 This  field  indicates the date and time at which the message
		 was appended to the file.

		 pipe or | :

		 Pipe the message as the standard input to the	command	 named
		 by  string.   The  Bourne  shell,  is	used  to interpret the
		 string.  Prior to giving the  string  to  the	shell,	it  is
		 expanded with the following built-in variables:

		 $(sender): the return address for the message

		 $(address):  the  address  that was used to cause delivery to
		 the recipient

		 $(size): the size of the message in bytes

		 $(reply-to): either the Reply-To: or From: field of the  mes‐
		 sage

		 $(info): miscellaneous out-of-band information

		 When a process is invoked, its environment is as follows: the
		 user/group id's are set  to  recipient's  id's;  the  working
		 directory  is	the  recipient's directory; the umask is 0077;
		 the process has no the standard input is set to the  message;
		 the  standard	output	and  diagnostic	 output are set to all
		 other file-descriptors are closed; the environment  variables
		 $USER,	 $HOME,	 and  $SHELL  are  set appropriately; no other
		 environment variables exist.

		 The process is given a certain amount of time to execute.  If
		 the  process  does  not  exit within this limit, it is termi‐
		 nated.	 The amount of time is calculated as ((size  x	60)  +
		 300)  seconds,	 where size is the number of bytes in the mes‐
		 sage.

		 The exit status of the process is consulted to determine  the
		 success  of  the  action.  An exit status of 0 means that the
		 action succeeded.  Any other exit status (or abnormal	termi‐
		 nation) means that the action failed.

		 In order to avoid any time limitations, you might implement a
		 process that began by forking.	 The parent would  return  the
		 appropriate  value  immediately, and the child could continue
		 to do whatever it wanted for as  long	as  it	wanted.	  This
		 approach  should  only	 be  used if you do not care about the
		 outcome of the action, because the success or failure of  the
		 child process cannot be passed back to However, if the parent
		 is going to return a non-zero exit status, then this approach
		 can lead to quicker delivery into your maildrop.

		 qpipe or ^ :

		 This  is  similar to pipe, but executes the command directly,
		 after built-in variable expansion,  without  assistance  from
		 the shell.

		 destroy:

		 This action always succeeds.

       result:	 Indicates  how the action should be performed.	 The following
		 values are valid:

		 A:

		 Perform the action.  If the action succeeded, then  the  mes‐
		 sage is considered delivered.

		 R:

		 Perform the action.  Regardless of the outcome of the action,
		 the message is not considered delivered.

		 ?:

		 Perform the action only if the message has  not  been	deliv‐
		 ered.	 If  the action succeeded, then the message is consid‐
		 ered delivered.

       The file is always read completely, so that several matches can be made
       and several actions can be taken.  The file must be owned either by the
       user or by root, and must be writable only by the owner.	 If  the  file
       cannot  be found, or does not perform an action which delivers the mes‐
       sage, then the file is read according to the  same  rules.   This  file
       must  be	 owned	by the root and must be writable only by the root.  If
       this file cannot be found or does not perform an action which  delivers
       the  message,  then  standard  delivery to the user's maildrop, is per‐
       formed.

       Arguments in the file are separated by a comma (,) or by	 white	space.
       Since  double quotes are honored, these characters may be included in a
       single argument by enclosing the entire argument in double quotes  (").
       A double quote can be included by preceding it with a back-slash.

       Four  programs are currently available: redistributes incoming messages
       to additional recipients; saves incoming messages in a file; and	 noti‐
       fies  the  user of incoming messages.  The fourth program, is described
       in the reference page.  They all reside in the directory.

       The program resends a copy of the  message  to  all  of	the  addresses
       listed  on  its	command	 line.	 It  uses  the	format string facility
       described in

       The program appends a copy of the message to the	 file  listed  on  its
       command line.  It is made obsolete by

       The  program  executes  the named file with the message as its standard
       input, and gives the resulting output to the terminal access daemon for
       display on your terminal.  If the terminal access daemon is unavailable
       on your system, then writes the output to your terminal, only  if  your
       terminal has world-writable permission.	If no valid file is specified,
       then gives a one-line scan listing to the terminal access daemon.

Restrictions
       For compatibility with older versions of MH, if cannot find the	user's
       file, it attempts to execute an old-style hook in the user's directory.
       Specifically, it first attempts to execute the command:
       .mh_receive file maildrop directory user
       Failing that it attempts to execute:
       $HOME/bin/rcvmail user file sender
       If both of these fail, it gives up and write to the user's maildrop.

       In addition, whenever a hook or	process	 is  invoked,  file-descriptor
       three (3) is set to the message in addition to the standard input.

       Only two return codes are meaningful, others should be.

Examples
       This section shows how could be used.

       In  this	 example,  line-by-line	 comments have been extracted from the
       code to aid readability of the example.	The  line  numbers  would  not
       normally be in the code; they are there to help you.  The code fragment
       precedes the explanation:

	     field     pattern	  action    result   string
       (1)   To	       mmdf2	  file	    A	     mmdf2.log
       (2)   From      mmdf	  pipe	    A	     err-message-archive

       (3)   Sender    uk-mmdf	  file	    ?	     mmdf2.log
       (4)   To	       Unix	  >	    A	     unix-news
       (5)   addr      jpo=mmdf	  |	    A	     mmdf-redist
       (6)   addr      jpo=ack	  |	    R	     resend -r $(reply-to)
       (7)   From      steve	  destroy   A	     -
       (8)   default   -	  >	    ?	     mailbox
       (9)   *	       -	  |	    R	     rcvalert

       Line 1:	 File mail with mmdf2 in the To: line into file

       Line 2:	 Messages from mmdf are piped to the program

       Line 3:	 Take anything with the address uk-mmdf in the Sender:	field,
		 and file it in if it has not already been filed by line 1.

       Line 4:	 Put messages addressed to Unix in the file

       Line 5:	 If the address is jpo=mmdf, pipe the message into

       Line 6:	 If the address is jpo=ack, send an acknowledgement copy back.

       Line 7:	 Destroy anything from steve.

       Line 8:	 Take  anything	 that is not matched yet and put it into mail‐
		 box.

       Line 9:	 Always run

Files
       The system customization file.

       The system default file controlling local delivery.

       The user-supplied alternative to the system default file
		 controlling local delivery.

See Also
       rcvstore(1mh)

								   slocal(1mh)
[top]

List of man pages available for Ultrix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net