packages icon



 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



 NAME
      mreply - mail filter, mailing list server, file server.

 SYNOPSIS
      MReply [ -c configfile ] [ -e errfile ] [ -e logfile ]
             [ -L ] [ address ]

 DESCRIPTION
      MReply is a simple mail server that takes action based on commands
      given to it, typically in incoming mail messages.  Possible actions
      include adding or removing the mailer's address to or from a given
      list, sending the mailer a file in plaintext or uuencoded form,
      receive and uudecode/store a file from the mailer, or forwarding the
      message to another user, a pipe, or a mailbox.

    Invocation
      MReply can be invoked in two different ways:

      +  If address is not specified, MReply will consider the first few
         lines of the input as mail headers, and try to extract the default
         reply address by parsing these.  This way, MReply can be invoked
         automatically upon arrival of incoming mail messages.  If your
         system uses `sendmail' as the local mail delivery agent, create a
         publicly readable file named `.forward' in your home directory,
         containing the following line:


              |"exec /path/mreply #your-login-name"

         Be sure to include the double quotes, as well as the pound sign in
         front of your login name.  (Your name should only be a comment, not
         an argument for MReply; and is needed because of a bug in
         `sendmail').

      +  Otherwise, MReply goes into a local mode, and will display a
         command prompt to standard output.  Enter your commands
         interactively at this prompt; address specifies the default reply
         address.

 OPTIONS
      -c configfile   Specify a configuration file other than the default
                      `.mreply.rc'.

      -e errfile      Specify an error output file other than the default
                      `mreply.err'.

      -l logfile      Specify a request log file other than the default
                      `.mreply.log'.  Can be overridden by a .logfile
                      specification in the configuration file; see below.





                                    - 1 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



      -L              Use long log file format.  Can be overridden by a
                      .logfile specification in the configuration file; see
                      below.

 USAGE
      Requests should be given in the body of the message, one per line,
      using the following syntax:

           COMMAND [site*][argument ...] [TO|AS address] If site is given,
           i.e. if the second word contains a `*', it specifies another mail
           server to which the request will be forwarded.  Each site can be
           declared with a .site specification in the configuration file;
           see below.  A simple `*' without site in front of it will cause
           the request to be forwarded to ALL other mail servers that this
           server knows about.  If `TO address' or `AS address' is given,
           address will override any address given in the mail header or on
           the command line.  Built-in commands and their corresponding
           arguments are:

           JOIN [list] / SUBSCRIBE [list]
                Append address to list.  If list is not specified, append to
                the `[DEFAULT]' list, if any.  See also the description of
                the .LIST and .LISTDIR specifications, below.

           LEAVE [list] / UNSUBSCRIBE [list]
                Remove address from list.  If list is not specified, remove
                from the `[DEFAULT]' list, if any.

           REVIEW [list]
                List all subscribers of list. If list is not specified, list
                subscribers of the `[DEFAULT]' list, if any.  Availibility
                of this command can be prevented by declaring a list
                `concealed'; see the description of the .LIST and .LISTDIR
                specifications below.

           WHICH [site]
                Give a list of all the lists to which address is subscribed.
                If several listnames refer to the same listfile, only the
                first one will be included in the response.  If site
                (possibly just a `*') is specified, forward the request.

           CHANGE old-address
                Change old-address to address  in all lists known to this
                server.

           SEND [packet [splitsize]]
                Send packet via e-mail, as plain text or as a uuencoded
                shell archive.  If packet is not specified, send the
                `[DEFAULT]' packet, if any.  The optional second argument
                splitsize specifies the maximum size (in bytes or kilobytes)
                per mail message.  See also the description of the .PACKET



                                    - 2 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



                and .PACKETDIR specifications, below.

           ACCESS [code]
                Provide a code for a subsequent file submission.  See also
                the description of the .RECEIVEDIR specification, below.

           TEXT filename
                Save the rest of the message as plaintext to filename in the
                directory specified with the .RECEIVEDIR specification
                and/or the ACCESS command.  See below for details.

           BEGIN mode filename
                Uudecode the rest of the message to filename in the
                directory specified with the .RECEIVEDIR specification
                and/or the ACCESS command.  See below for details.

                The mode should be an octal number describing the
                permissions of the stored file.

           HELP [topic]
                Return some text specified in the configuration file to
                address. Intended for basic help on syntax, available
                commands, lists, packets and/or sites, whichever applicable.

           SERVERINFO [site]
                Return some information about the site configuration and the
                current version of MReply to address. If site is specified
                (see the description of the .SITE and .SERVER
                specifications, below), forward the request.

    Examples
      The following are some examples of legal syntax for commands given to
      MReply:
           JOIN announcement AS alice@wonderland.com (Alice)
           leave notgnu*mailing
           SEND DNOT 60 TO foo@bar.com (Foo Bar)
           send info
           SERVERINFO
           change foo@obsolete.com to foo@bar.com (Foo Bar)

 CONFIGURATION
      The following syntax  is  available  in  the  configuration  file,  by
      default `.mreply.rc' in your home directory.

    Keywords
      These are looked  up  at  various  points  during  processing  of  the
      request,  and determine the behaviour of this particular server.  Each
      keyword specification should occur on a separate line.  In cases where
      several  instances  of  the  same  keyword  occur,  the first matching
      specification is chosen.
           .SERVICEADDRESS address



                                    - 3 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



           .OWNERADDRESS address
                Declaration of the address for this service, and its  owner.
                These are used in various contexts, such as in the "X-Loop:"
                mail header  and  ServerInfo  responses.   If  not  present,
                MReply  will  assume  "Your  Name  <username@host>"  as both
                server and owner address.

           .FORWARD destination
           .FORWARDALL destination
           .LOOPEDFORWARD destination
           .NOFORWARD
                Forward non-request mails, all mails, looped mails,  and  no
                mail,  respectively.   For these specifications, destination
                should be preceeded by !, | or >, the following way:

                     .forward ! user@host.domain
                          Forward the mail to another address.

                     .forward | /path/command arguments
                          Forward the mail to a command via '/bin/sh'.

                     .forward > /path1/mbox1 [/path2/mbox2 ...]
                          Forward the mail to the first successfully  opened
                          file  of  the ones specified.  If the mailbox name
                          ends with a "/", it is assumed to be a  directory,
                          and  your  login  name is appended.  For instance,
                          "/usr/spool/mail/,  /usr/mail/"  is  expanded   to
                          "/usr/spool/mail/your-name, /usr/mail/your-name".
                If neither !, | or > is the first character, >  is  assumed.
                The following processing takes place:

                +     If  no  configuration  file  is  found,  the  mail  is
                     forwarded     to     your     regular     mailbox    in
                     "/usr/spool/mail/,/usr/mail/,mbox".

                +    Otherwise, if the  mail  has  been  here  before  (i.e.
                     contains   an   appropriate   X-loop:  header),  it  is
                     forwarded via the  .LOOPEDFORWARD  specification,  your
                     regular mailbox by default.

                +    Otherwise, if a .FORWARDALL specification is found, all
                     mail is forwarded according to this.

                +    Otherwise, if a .NOFORWARD specification is found,  all
                     mail (request or not) is processed, and responded to.

                +    Otherwise, only request mail is processed and responded
                     to,  while regular mail is forwarded via .FORWARD; your
                     mailbox by default.





                                    - 4 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



           .LIST listname listfile [modifier...]
           .LIST listname ! user@host.domain
           .LIST listname | /path/command arguments
           .LIST listname > mailbox-file
                Specification of  subscriber  lists.   In  the  first  case,
                commands like `SUBSCRIBE listname' or `REVIEW listname' will
                affect listfile, whose  name  is  absolute  (full  path)  or
                relative  to  your home directory.  A special case occurs if
                the first character of the second argument is  `!',  `|'  or
                `>'.   The  request  will then be forwarded to  e.g. another
                server, or to a mailbox for manual processing, with a syntax
                similar  to  that described under the .FORWARD specification
                above.  If listname is `[DEFAULT]',  this  line  applies  to
                commands   without  any  argument,  for  instance  a  simple
                `SUBSCRIBE'  or  `UNSUBSCRIBE  AS  user@host.domain'.    The
                following modifiers are available:

                     AUTOMATIC Automatically add  the  mailer's  address  to
                               this  list,  even  if  no  explicit  JOIN  or
                               SUBSCRIBE command is given.  Not valid if the
                               mail is determined to be a `regular' mail.

                     MANUAL    Only add mailers who  give  explicit  JOIN  /
                               SUBSCRIBE commands.  (Default).

                     CONCEALED Do not allow REVIEW commands on this list.

                     REVEALED  Allow REVIEW on this list. (Default).

                It should be noted that many consider it  poor  `netiquette'
                to  add someone's name to a mailing list unless they ask for
                it explitictly, particularly if the list carries  a  lot  of
                traffic.

           .LISTDIR directory [modifier...]
           .LISTDIR ! user@host.domain
           .LISTDIR | /path/command arguments
           .LISTDIR > mailbox-file
                In the first case, this is a directory where to look  for  a
                filename  matching  the  argument  of  e.g.  a JOIN or LEAVE
                command, if no matching .LIST specification is found.   Note
                that  such lookup will be case sensitive, so the case of the
                argument has to match the  case  of  the  desired  filename.
                Several of these lines will cause MReply to look through all
                the specified directories, in the order of appearance.   All
                the  other  lines specify forwarding, with syntax similar to
                the  .FORWARD  specification  above.   Subsequent   .LISTDIR
                specifications will have no effect.

           .PACKET packetname filename  encoding
           .PACKET packetname ! user@host.domain



                                    - 5 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



           .PACKET packetname | /path/command arguments
           .PACKET packetname > /path/mailbox
                Specification of available packets.  In the first case, when
                a  SEND packetname command is given, the associated filename
                (absolute or relative to your home directory) is returned to
                address;  whereas  the other lines are syntax for forwarding
                the request, e.g. to another server, or  to  a  mailbox  for
                manual  processing.  If packetname is `[DEFAULT]', this line
                applies  to  SEND  commands  without  any  arguments.    The
                following encodings are available:

                     PLAIN      Send  the  file  `as  is',  i.e.  plaintext.
                               (Default)

                     ENCODED   Send file as a uuencoded shell archive.

           .PACKETDIR directory [encoding]
           .PACKETDIR ! user@host.domain
           .PACKETDIR | /path/command arguments
           .PACKETDIR > mailbox-file
                In the first case, this is a directory where to look  for  a
                filename matching the argument of a `SEND argument' command,
                if no matching .PACKET specification is  found.   Note  that
                such  lookup  will  be  case  sensitive,  so the case of the
                argument has to match the  case  of  the  desired  filename.
                Several of these lines will cause MReply to look through all
                the specified directories, in the order of appearance.   All
                the  other  lines specify forwarding, with syntax similar to
                the .FORWARD  specification  above.   Subsequent  .PACKETDIR
                specifications will have no effect.

           .RECEIVEDIR directory [access-code]
                Directory in which to place files submitted to this  server.
                If  access-code  is specified, the mailer has to gain access
                via an `ACCESS access-code' command before being allowed  to
                submit  files  to  this directory.  Several directories with
                different access-codes can be specified.   The  first  valid
                entry  is  chosen, therefore a specification without access-
                code should appear as the last one.  File names supplied  by
                the  mailer are stripped to the base, so that the files will
                not appear in any other directory than  the  one  (s)he  has
                gained access to.

           .SITE siteid address
                Specify another site to which requests may be forwarded,  if
                the mailer uses a syntax like:

                     COMMAND siteid*[argument ...] [TO|AS address] Note that
                     several  requests may be sent in the same mail, if they
                     are being forwarded to the same address.




                                    - 6 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



           .SERVER address
                If the above syntax is  used,  but  no  matching  siteid  is
                found, forward the request to address, rather than giving an
                `IllegalSite' response. (See below).

           .SETENV variable value
                Set environment variable variable to value. If value  is  an
                empty string, clear the variable.

           .UNSETENV variable
                Clear environment variable variable.

           .LOGFILE filename [logtype]
                Use filename to log the request,  rather  than  the  default
                `.mreply.log'  or  any  file specified with the `-l logfile'
                option on the command line.  If  logtype  is  specified,  it
                overrides  the  -L  option  or  the default `short' logging.
                Valid logtypes are:

                     SHORT     Use a one-line log format.

                     LONG        Use   a   multi-line   format   with   more
                               information;   useful  for  debugging  during
                               configuration of your system.

           .PURGEHEADER Header-Field:
                Delete the mail header specified before forwarding the mail.

           .INSERTHEADER Header-Field: Text
                Add a new header before forwarding the mail, if not  already
                existing.  Executed after .PURGEHEADER, hence uniqueness can
                be guaranteed by providing both specifications on  the  same
                Header-Field.

           .ADDHEADER Header-Field: Text
                Add  a  new  header  before  forwarding  the  mail,  without
                checking to see if it already exists.

           .HEADER Header-Field: Text
                Specify a header for reply mail, i.e. responses to commands.
                If  no `To:' and `From:' headers are specified, they will be
                automatically generated.

           .SIGNATURE [command [argument]]
                Specify a signature to append to all responses, as  well  as
                mails forwarded to anything else than a mailbox.  If command
                and possibly argument is specified, this signature  is  used
                only  in  response  to matching command lines.  See also the
                .END statement, below.





                                    - 7 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



           .MESSAGE message-label [argument]
                Specification of various responses returned to address  upon
                completion  of a request.  Also valid inside other .MESSAGE,
                .COMMAND, .LABEL, or .SIGNATURE  declarations.   Every  line
                that  is  not  initialized  with  a  `.'  is included in the
                response to address. The following message-labels should  be
                specified:

                     If .LIST or .LISTDIR specifications exist:
                          Added, AlreadyAdded, Removed, NotInList,   Review,
                          ConcealedList,    IllegalList,   Which,   Changed,
                          NoChange.

                     If .PACKET or .PACKETDIR specifications exist:
                          SendPlain, SendEncoded, IllegalPacket.

                     If .RECEIVEDIR specifications exist:
                          ReceivePlain,     ReceiveEncoded,     DecodeError,
                          NoAccess.

                     If .SITE is defined, and .SERVER is not:
                          IllegalSite.

                     Always:
                          Help, Unavailable, SyntaxError, EmptyMail.

                     Optional:
                          AutoAdded,  Forwarded,  Looped,  Resent,   Header,
                          Signature, ServerError.

                See also the .END statement, below.

           .IGNORE message [argument]
                If no matching `.MESSAGE message' statement  can  be  found,
                this  prevents  an  error  message  from  being  returned to
                address.  Functionally  equivalent  to  `.MESSAGE  message',
                followed immediately by `.END'.

           .COMMAND command [argument]
                Start of a user-defined command.  Also  valid  inside  other
                .MESSAGE, .COMMAND, .LABEL, or .MESSAGE declarations.  Every
                line that is not initialized with a `.' is included  in  the
                response to address. See also the .END statement, below.

           .END
                The   end   of   a   .MESSAGE,   .COMMAND,   or   .SIGNATURE
                specification, or a  .LABEL when called via .GOSUB.  Neither
                of these can be nested, so one .END statement  may  complete
                several specifications.  In the case of .LABEL, subsequently
                return to the line after the calling  .GOSUB  statement,  if
                any.   .END  is  automatically  assumed when encountering an



                                    - 8 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



                .ELIF, .ELSE or .ENDIF statement matching an  .IF  statement
                prior to the beginning of the .MESSAGE, .COMMAND, .LABEL, or
                .SIGNATURE, or upon encountering end-of-file.

           .INCLUDE filename
                Include the text from filename in the response.  Only  valid
                during   parsing   of   .MESSAGE,  .COMMAND,  or  .SIGNATURE
                specifications.

           .EXEC command arguments
                Execute command via `/bin/sh'.  Input is taken from the mail
                message,  starting  at the current point; standard output is
                included in the reply  to  the  user;  and  output  sent  to
                standard error is stored in the variable $ERRORMESSAGE.  The
                return status from the program is stored  in  $RETURNSTATUS.
                Upon  completion,  if the mail message is not exhausted, and
                no .FLUSH command is given, parsing of the remainder of  the
                message   will  continue.   Only  valid  during  parsing  of
                .MESSAGE, .COMMAND, or .SIGNATURE specifications.

           .FLUSH
                Eat the rest of the mail message.  Useful in  certain  cases
                after  an  .EXEC  command.   Only  valid  during  parsing of
                .MESSAGE, .COMMAND, or .SIGNATURE specifications.

           .LABEL label
                Label for .GOTO and  .GOSUB.  Valid  at  any  point  in  the
                configuration  file,  even if inside unsuccessful .IF, .ELIF
                or .ELSE statements.  See also the .END statement, below.

           .GOTO label
           .GOSUB label
                Jump to `.LABEL label', and continue parsing from there.  In
                the  case  of .GOSUB, return to the current point upon .END,
                .ENDIF, or end-of-file, as described for the .END statement,
                above.

           .IF   [NOT] expression
           .AND  [NOT] expression
           .OR   [NOT] expression
           .ELIF [NOT] expression
           .ELSE
           .ENDIF
                Conditional parsing of the  enclosed  sections.   Conditions
                are evaluated from left to right (actually top down) without
                any different priority levels.  (However, nested  conditions
                are available).

                Syntax for expression:





                                    - 9 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



                     TO address
                          True if address exists in any  of  the  To:,  Cc:,
                          Apparently-To:, or Resent-To: headers.

                     FROM address
                          True if address exists in any of the Return-Path:,
                          From,  Resent-From:,  Sender:,  X-From:,  From: or
                          Reply-To: headers.

                     FILE name CONTAINS string
                     FILE name EQUALS string
                     FILE name EXISTS
                     HEADER Field: CONTAINS string
                     HEADER Field: EQUALS string
                     HEADER Field: EXISTS
                     string CONTAINS string
                     string EQUALS string
                     string EXISTS

                Each condition has to start on  a  separate  line,  and  the
                number  of  .ENDIF  statements  has  to  match the number of
                .IF's.

    Substitutions
      Various  substitutions  are  available  in  the  configuration   file,
      including  environment  variables,  shell  command  outputs,  and some
      built-in commands.  The following  is  a  description  of  syntax  for
      these.

           \c
                If `\' is the last non-white character on the line,  include
                the   next  line  in  the  declaration.   Otherwise,  escape
                character c according to the following:

                +    If c is one of b, t, n, v, f, or r, insert a backspace,
                     horizontal  tab,  newline,  vertical  tab, formfeed, or
                     return character, respetively.

                +    Otherwise, insert c `as is', i.e. do not interpret  any
                     special  meaning  of it.  For instance, `\\' gives `\',
                     and `\)' gives `)'.

           ~/
           ~user/
                Substitute your own home directory, and the  home  directory
                of user, respectively.

           :variable:
           $variable
           ${variable}
                Substitute  environment  variable  variable.  The  following



                                   - 10 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



                variables are automatically specified by MReply:

                     USER Username of  the  process  owner,  initialized  at
                          startup.

                     HOME The process owner's home directory, initialized at
                          startup.

                     PATH The search path for  sub-command  executions.   If
                          not present before invoking MReply, initialized to
                          some basic search-path at that time.

                     ACCESS
                          The access-code supplied via the  ACCESS  command;
                          initialized to  `[DEFAULT]' at startup.

                     SERVICEADDRESS
                          The address of this  service,  as  read  from  the
                          .SERVICEADDRESS specification in the configuration
                          file at startup.

                     OWNERADDRESS
                          The  address  of  the  owner,  as  read  from  the
                          .OWNERADDRESS  specification  in the configuration
                          file at startup.

                     HEADERADDRESS
                          The default reply address,  as  specified  on  the
                          shell  command  line  or  extracted  from the mail
                          header, converted to the form:
                               user@host.domain (Real Name)

                     FULLADDRESS
                          The reply address for this command,  as  specified
                          with  the  TO  or AS keywords; by default equal to
                          HEADERADDRESS.

                     ADDRESS
                          The user@host.domain part of FULLADDRESS.

                     USERNAME
                          The user part of FULLADDRESS.

                     FULLNAME
                          The Real Name  part  of  FULLADDRESS,  or  if  not
                          given, the user part of it.

                     NAME Generally the first word of FULLNAME.

                     COMMANDLINE
                          The command line currently being processed.



                                   - 11 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



                     COMMAND
                          The first word of COMMANDLINE.

                     ARGUMENTS
                          All  arguments  for  the   current   command.    A
                          substring  of  COMMANDLINE  starting at the second
                          word (after the `*' if site*  is  specified),  and
                          ending before TO, AS, or end-of-line.

                     ARGUMENT
                          The  first  argument  for  the  current   command.
                          Generally equal to the second word, but exceptions
                          may  occur  if  `site*'  or  `TO|AS  address'   is
                          specificed.

                     ARGUMENT2
                          The  second  argument  for  the  current  command.
                          Generally equal to the third word.

                     SITEID
                          The site specified on the command line, if any.

                     PATHNAME
                          The full path of the file associated with a  given
                          argument.   Initialized after successfully parsing
                          a  .LIST,   .LISTDIR,   .PACKET,   PACKETDIR,   or
                          .RECEIVEDIR   specification,  before  returning  a
                          response to the reply address.

                     FILENAME
                          The base of PATHNAME

                     PARTS
                          The number of e-mails composing  a  file  sent  in
                          response  to  the SEND command.  Available for the
                          SendPlain or SendEncoded responses.

                     MESSAGE
                          The response message that is currently being sent,
                          i.e. `Added', `AlreadyAdded', `Removed', etc.

                     ERRORMESSAGE
                          Initialized   upon   ServerError   responses,   or
                          whenever   an  invoked  shell  command  writes  to
                          standard error.

                     RETURNSTATUS
                          Initialized upon completion of  an  invoked  shell
                          command; and contains its return value.





                                   - 12 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



                Environment variables are  inherited  by  invoked  sub-shell
                commands,  and  are  set  or  cleared  with  the  .SETENV or
                .UNSETENV commands in the configuration file.

           $function(arg1, arg2...)
                Substitute with output from a built-in function.  Wherever a
                numeric  argument  is  required, any non-numeric syntax will
                produce an error message in the error file.   Functions  can
                be  nested,  so  an  argument  can contain a call to another
                function.  Available functions are:

                     $WORD(string, wordNo[, noOfWords])
                          Word number wordNo of string.  The first  word  is
                          number  1, however if wordNo is 0 the word is only
                          copied if there are no leading spaces  in  string.
                          If  noOfWords is given, it specifies the number of
                          words to copy; a value of 0 indicates to copy  the
                          remainder of the string.

                     $CHAR(string, charNo[, noOfChars])
                          Character number  charNo  of  string.   The  first
                          character  is number 1.  If noOfChars is given, it
                          specifies the number  of  characters  to  copy;  a
                          value  of 0 indicates to copy the remainder of the
                          string.

                     $REPL(string, charNo, noOfChars, newString)
                          Replace noOfChars characters, starting at position
                          charNo of string, with newString.

                     $POS(string, substring)
                          Position of substring within  string.   The  first
                          position  is  1; if substring is not found, return
                          `0'.

                     $LEN(string)
                          The length of string.

                     $ADD(n1, n2...)
                          The sum of the numerical arguments n0, n1...   The
                          maximum number of arguments is 10.

                     $SUB(n1, n2...)
                          All arguments starting with n2 subtracted from n1.
                          The maximum number of arguments is 10.

                     $UPCASE(string)
                          Convert string to uppercase.

                     $HEADER(Field:)
                          The Field: header of the input mail.



                                   - 13 -         Formatted:  April 25, 2024






 MREPLY(1)                                                         MREPLY(1)
                                13 April 1994



           `command arguments`
           $(command arguments)
                Substitute  with  the  output  from  command,  executed  via
                /bin/sh.    Return   status   is   stored  in  the  variable
                RETURNSTATUS, and any output written to  standard  error  is
                stored in ERRORMESSAGE.

 FILES
      $HOME/.mreply.rc    Default configuration file.

      $HOME/.mreply.log   Default log file.

      $HOME/mreply.err    Default error file.

      /etc/passwd         Used to obtain the USER and HOME variables.

      /usr/spool/mail/$USER, /usr/mail/$USER
                          Default mailbox.

      /usr/lib/sendmail   Used to send or forward mail.

      /bin/sh             Used to interpret sub-command lines.

 SEE ALSO
      sh(1), sendmail(8),

 BUGS
      There is currently no way of extending a  specification  over  several
      lines  in the configuration file, without at the same time getting one
      or more NEWLINE characters inserted at the line breaks.   In  English:
      If you e.g. want to execute a long command line via .EXEC, the command
      can become long and ugly also in this file.  During  processing  of  a
      mail  message, or even a single command, the configuration is (partly)
      parsed several times.  Therefore, one should not count  on  evironment
      variables  being  un-initialized  if they are assigned a value further
      down in the file.  To secure against this, give a  .UNSETENV  variable
      statement  prior  to  referencing  the  variable.   There are no known
      misbehaviors in this version of MReply.  If you discover  any,  please
      send a mail to the address below.

 NOTES
      To receive the newest version, send an e-mail containing a SEND MREPLY
      command  in the body to <tor@netcom.com>, or retreive it via anonymous
      FTP to ftp.netcom.com in /pub/tor/mreply.  A mailing list  for  future
      update  announcements  is  available.  To  subscribe, send a SUBSCRIBE
      MREPLY command to the same address.

 AUTHOR
      Tor Slettnes <tor@netcom.com>





                                   - 14 -         Formatted:  April 25, 2024