Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mail(1)

notify(1)

vacation(1)



mail_pipe(1M)     MISC. REFERENCE MANUAL PAGES      mail_pipe(1M)



NAME
     mail_pipe - invoke recipient command for incoming mail

SYNOPSIS
     mail_pipe [ -x debug_level ] -r recipient -R  path_to_sender
     -c content_type -S subject

DESCRIPTION
     When a new mail message  arrives,  the  mail  command  first
     checks if the recipient's mailbox indicates that the message
     is to be forwarded elsewhere (to some other recipient or  as
     the  input  to some command).  If the message is to be piped
     into a recipient-specified command, mail  invokes  mail_pipe
     to  do  some  validation and then execute the command in the
     context of the recipient.

     Command-line arguments are:
     -x debug_level    Turn on debugging for this invocation. See
                       the  description  of the -x option for the
                       mail command for details.
     -r recipient      The recipient's login id.
     -R path_to_sender The return address to the message's origi-
                       nator.
     -c content_type   The value of the Content-Type: header line
                       in the message.
     -S subject        The value of the Subject: header  line  in
                       the message if present.

     mail_pipe is installed as  a  setuid-to-root  process,  thus
     enabling itself to change it's user and group ids to that of
     the recipient as necessary.

     When invoked, mail_pipe performs the following steps  (if  a
     step fails, the exit code is noted as [N]):
     -  Validate invocation arguments [1].
     -  Verify that recipient name is < 14 characters long [2].
     -  Verify that the setgid flag for the recipient mailbox  is
        set [3].
     -  Open /var/mail/recipient [4].
     -  Verify that recipient's mailbox starts  with  the  string
        Forward to [5].
     -  Find pipe symbol indicating start of  command  string  in
        recipient mailbox [6].
     -  Find entry for recipient in /etc/passwd [7].
     -  Set gid to recipient's gid [8].
     -  Set uid to recipient's uid [9].
     -  Change current directory to recipient's  login  directory
        [10].
     -  Allocate space to  hold  newly  exec'ed  environment  for
        recipient command [11].
     -  Parse the  recipient  command,  performing  any  %keyword
        expansions  required.   See the `Forwarding mail' section



                Last change: Essential Utilities                1





mail_pipe(1M)     MISC. REFERENCE MANUAL PAGES      mail_pipe(1M)



        of mail(1), for more information regarding %keyword  sub-
        stitutions [12].
     -  Execute recipient command [13 if  exec  fails,  otherwise
        exit code from recipient command itself].

FILES
     /etc/passwd      to identify sender and locate recipients
     /var/mail/recipient
                      incoming mail for recipient; that  is,  the
                      mail file
     /tmp/MLDBG*      debug trace file
     /usr/lib/mail/mail_pipe
                      mail_pipe program

SEE ALSO
     mail(1), notify(1), vacation(1)







































                Last change: Essential Utilities                2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026