Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mail(1) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(1)

login(1)

mailx(1)

notify(1)

write(1)

vacation(1)

mailsurr(4)

mailcnfg(4)



mail(1)               UNIX System V(Essential Utilities)                mail(1)


NAME
      mail, rmail - read mail or send mail to users

SYNOPSIS
   Sending mail:
      mail [ -tw ] [ -m message_type ] recipient . . .

      rmail [ -tw ] [ -m message_type ] recipient . . .

   Reading mail:
      mail [ -ehpPqr ] [ -f file ]

   Forwarding mail:
      mail -F recipient . . .

   Debugging:
      mail [ -xdebug_level ] [ other_mail_options ] recipient . . .

      mail -T mailsurr_file recipient . . .

DESCRIPTION
      A recipient is usually a user name recognized by login(1).  When
      recipients are named, mail assumes a message is being sent (except in the
      case of the -F option).  It reads from the standard input up to an end-
      of-file (cntrl-d) or, if reading from a terminal device, until it reads a
      line consisting of just a period. When either of those indicators is
      received, mail adds the letter to the mailfile for each recipient.

      A letter is composed of some header lines followed by a blank line
      followed by the message content.  The header lines section of the letter
      consists of one or more UNIX postmarks:
            From sender date_and_time [remote from remote_system_name]
      followed by one or more standardized message header lines of the form:
            keyword-name: [printable text]
      where keyword-name is comprised of any printable, non-whitespace,
      characters other than colon (`:').  A Content-Length: header line,
      indicating the number of bytes in the message content will always be
      present.  A Content-Type: header line that describes the type of the
      message content (such as text, binary, multipart, etc.) will always be
      present unless the letter consists of only header lines with no message
      content.  Header lines may be continued on the following line if that
      line starts with white space.

   Sending mail:
      The following command-line arguments affect SENDING mail:
      -m    causes a Message-Type: line to be added to the message header with
            the value of message_type.
      -t    causes a To: line to be added to the message header for each of the
            intended recipients.
      -w    causes a letter to be sent to a remote recipient without waiting
            for the completion of the remote transfer program.



10/89                                                                    Page 1







mail(1)               UNIX System V(Essential Utilities)                mail(1)


      If a letter is found to be undeliverable, it is returned to the sender
      with diagnostics that indicate the location and nature of the failure.
      If mail is interrupted during input, the message is saved in the file
      dead.letter to allow editing and resending.  dead.letter is always
      appended to, thus preserving any previous contents. The initial attempt
      to append to (or create) dead.letter will be in the current directory.
      If this fails, dead.letter will be appended to (or created in) the user's
      login directory.  If the second attempt also fails, no dead.letter
      processing will be done.

      rmail only permits the sending of mail; uucp(1C) uses rmail as a security
      precaution.  Any application programs that generate mail messages should
      be sure to invoke rmail rather than mail for message transport and/or
      delivery.

      If the local system has the Basic Networking Utilities installed, mail
      may be sent to a recipient on a remote system. There are numerous ways to
      address mail to recipients on remote systems depending on the transport
      mechanisms available to the local system.  The two most prevalent
      addressing schemes are UUCP-style and Domain-style.  With UUCP-style
      addressing, remote recipients are specified by prefixing the recipient
      name with the remote system name and an exclamation point (such as
      sysa!user).  A series of system names separated by exclamation points can
      be used to direct a letter through an extended network (such as
      sysa!sysb!sysc!user).  With Domain-style addressing, remote recipients
      are specified by appending an `@' and domain (and possibly sub-domain)
      information to the recipient name (such as user@sf.att.com).  (The local
      System Administrator should be consulted for details on which addressing
      conventions are available on the local system.)

   Reading Mail:
      The following command-line arguments affect READING mail:
      -e    causes mail not to be printed.  An exit value of 0 is returned if
            the user has mail; otherwise, an exit value of 1 is returned.
      -h    causes a window of headers to be initially displayed rather than
            the latest message.  The display is followed by the `?' prompt.
      -p    causes all messages to be printed without prompting for
            disposition.
      -P    causes all messages to be printed with all header lines displayed,
            rather than the default selective header line display.
      -q    causes mail to terminate after interrupts.  Normally an interrupt
            causes only the termination of the message being printed.
      -r    causes messages to be printed in first-in, first-out order.
      -f file
            causes mail to use file (such as mbox) instead of the default
            mailfile.

      mail, unless otherwise influenced by command-line arguments, prints a
      user's mail messages in last-in, first-out order.  The default mode for
      printing messages is to display only those header lines of immediate
      interest.  These include, but are not limited to, the UNIX From and >From
      postmarks, From:, Date:, Subject:, and Content-Length: header lines, and


Page 2                                                                    10/89







mail(1)               UNIX System V(Essential Utilities)                mail(1)


      any recipient header lines such as To:, Cc:, Bcc:, etc.  After the header
      lines have been displayed, mail will display the contents (body) of the
      message only if it contains no unprintable characters.  Otherwise, mail
      will issue a warning statement about the message having binary content
      and not display the content.  (This may be overridden via the p command.
      See below.)

      For each message, the user is prompted with a ?, and a line is read from
      the standard input.  The following commands are available to determine
      the disposition of the message:

      #                    Print the number of the current message.

      -                    Print previous message.

      <new-line>, +, or n  Print the next message.

      !command             Escape to the shell to do command.

      a                    Print message that arrived during the mail session.

      d, or dp             Delete the current message and print the next
                           message.

      d n                  Delete message number n.  Do not go on to next
                           message.

      dq                   Delete message and quit mail.

      h                    Display a window of headers around current message.

      h n                  Display a window of headers around message number n.

      h a                  Display headers of all messages in the user's
                           mailfile.

      h d                  Display headers of messages scheduled for deletion.

      m [ persons ]        Mail (and delete) the current message to the named
                           person(s).

      n                    Print message number n.

      p                    Print current message again, overriding any
                           indications of binary (that is, unprintable)
                           content.

      P                    Override default brief mode and print current
                           message again, displaying all header lines.





10/89                                                                    Page 3







mail(1)               UNIX System V(Essential Utilities)                mail(1)


      q, or cntrl-D        Put undeleted mail back in the mailfile and quit
                           mail.

      r [ users ]          Reply to the sender, and other user(s), then delete
                           the message.

      s [ files ]          Save message in the named file(s) (mbox is default)
                           and delete the message.

      u [ n ]              Undelete message number n (default is last read).

      w [ files ]          Save message contents, without any header lines, in
                           the named files (mbox is default) and delete the
                           message.

      x                    Put all mail back in the mailfile unchanged and exit
                           mail.

      y [ files ]          Same as save.

      ?                    Print a command summary.

      When a user logs in, the presence of mail, if any, is usually indicated.
      Also, notification is made if new mail arrives while using mail.

      The permissions of mailfile may be manipulated using chmod in two ways to
      alter the function of mail.  The other permissions of the file may be
      read-write (0666), read-only (0664), or neither read nor write (0660) to
      allow different levels of privacy.  If changed to other than the default
      (mode 0660), the file will be preserved even when empty to perpetuate the
      desired permissions.  (The administrator may override this file
      preservation using the DELEMPTYMAILFILE option of mailcnfg.)

      The group id of the mailfile must be mail to allow new messages to be
      delivered, and the mailfile must be writable by group mail.

   Forwarding mail:
      The following command-line argument affects FORWARDING of mail:
      -F recipients
            Causes all incoming mail to be forwarded to recipients.  The
            mailbox must be empty.

      The -F option causes the mailfile to contain a first line of:
            Forward to recipient. . .
      Thereafter, all mail sent to the owner of the mailfile will be forwarded
      to each recipient.

      An Auto-Forwarded-From: ... line will be added to the forwarded message's
      header.  This is especially useful in a multi-machine environment to
      forward all a person's mail to a single machine, and to keep the
      recipient informed if the mail has been forwarded.



Page 4                                                                    10/89







mail(1)               UNIX System V(Essential Utilities)                mail(1)


      Installation and removal of forwarding is done with the -F invocation
      option.  To forward all your mail to systema!user enter:
            mail -F systema!user

      To forward to more than one recipient enter:
            mail -F "user1,user2@att.com,systemc!systemd!user3"

      Note that when more than one recipient is specified, the entire list
      should be enclosed in double quotes so that it may all be interpreted as
      the operand of the -F option.  The list can be up to 1024 bytes; either
      commas or white space can be used to separate users.

      If the first character of any forwarded-to recipient name is the pipe
      symbol (`|'), the remainder of the line will be interpreted as a command
      to pipe the current mail message to. The command, known as a Personal
      Surrogate, will be executed in the environment of the recipient of the
      message (that is, basename of the mailfile).  For example, if the
      mailfile is /var/mail/foo, foo will be looked up in /etc/passwd to
      determine the correct userID, groupID, and HOME directory.  The command's
      environment will be set to contain only HOME, LOGNAME, TZ, PATH (=
      /usr/usr/bin:), and SHELL (= /usr/bin/sh), and the command will execute
      in the recipient's HOME directory.  If the message recipient cannot be
      found in /etc/passwd, the command will not be executed and a non-delivery
      notification with appropriate diagnostics will be sent to the message's
      originator.

      After the pipe symbol, escaped double quotes should be used to have
      strings with embedded whitespace be considered as single arguments to the
      command being executed.  No shell syntax or metacharacters may be used
      unless the command specified is /usr/bin/sh.  For example,
            mail -F "|/bin/sh -c \"shellcommandline\""
      will work, but is not advised since using double quotes and backslashes
      within the shell_command_line is difficult to do correctly and becomes
      tedious very quickly.

      Certain %keywords are allowed within the piped-to command specification
      and will be textually substituted for before the command line is
      executed.
      %R    Return path to the message originator.
      %c    Value of the Content-Type: header line if present.
      %S    Value of the Subject: header line if present.

      If the command being piped to exits with any non-zero value, mail will
      assume that message delivery failed and will generate a non-delivery
      notification to the message's originator. It is allowable to forward mail
      to other recipients and pipe it to a command, as in
            mail -F "carol,joe,|myvacationprog %R"

      Two UNIX System facilities that use the forwarding of messages to
      commands are notify(1), which causes asynchronous notification of new
      mail, and vacation(1), which provides an auto-answer capability for
      messages when the recipient will be unavailable for an extended period of


10/89                                                                    Page 5







mail(1)               UNIX System V(Essential Utilities)                mail(1)


      time.

      To remove forwarding enter:
            mail -F ""

      The pair of double quotes is mandatory to set a NULL argument for the -F
      option.

      In order for forwarding to work properly the mailfile should have mail as
      group ID, and the group permission should be read-write.

      mail will exit with a return code of 0 if forwarding was successfully
      installed or removed.

   Debugging:
      The following command-line arguments cause mail to provide DEBUGGING
      information:
      -T mailsurr_file      causes mail to display how it will parse and
                            interpret the mailsurr file.
      -xdebug_level         causes mail to create a trace file containing
                            debugging information.

      The -T option requires an argument that will be taken as the pathname of
      a test mailsurr file.  If NULL (as in -T ""), the system mailsurr file
      will be used.  To use, type 'mail -T test_file recipient' and some
      trivial message (like "testing"), followed by a line with either just a
      dot (`.') or a cntrl-D.  The result of using the -T option will be
      displayed on standard output and show the inputs and resulting
      transformations as mailsurr is processed by the mail command for the
      indicated recipient.  Mail messages will never actually be sent or
      delivered when the -T option is used.

      The  -x option causes mail to create a file named /tmp/MLDBGprocess_id
      that contains debugging information relating to how mail processed the
      current message.  The absolute value of debug_level controls the
      verboseness of the debug information.  Zero implies no debugging. If
      debug_level is greater than zero, the debug file will be retained only if
      mail encountered some problem while processing the message.  If
      debug_level is less than zero the debug file will always be retained.
      The debug_level specified via -x overrides any specification of DEBUG in
      /etc/mail/mailcnfg.  The information provided by the -x option is
      esoteric and is probably only useful to System Administrators.  The
      output produced by the -x option is a superset of that provided by the -T
      option.

   Delivery Notification
      Several forms of notification are available for mail by including one of
      the following lines in the message header.

      Transport-Options: [ /options ]
      Default-Options: [ /options ]
      >To: recipient [ /options ]


Page 6                                                                    10/89







mail(1)               UNIX System V(Essential Utilities)                mail(1)


      Where the ``/options'' may be one or more of the following:

      /delivery   Inform the sender that the message was successfully delivered
                  to the recipient's mailbox.

      /nodelivery Do not inform the sender of successful deliveries.

      /ignore     Do not inform the sender of unsuccessful deliveries.

      /return     Inform the sender if mail delivery fails.  Return the failed
                  message to the sender.

      /report     Same as /return except that the original message is not
                  returned.

      The default is /nodelivery/return.  If contradictory options are used,
      the first will be recognized and later, conflicting, terms will be
      ignored.

FILES
      dead.letter         unmailable text
      /etc/passwd         to identify sender and locate recipients
      /etc/mail/mailsurr  routing / name translation information
      /etc/mail/mailcnfg  initialization information
      $HOME/mbox          saved mail
      $MAIL               variable containing path name of mailfile
      /tmp/ma*            temporary file
      /tmp/MLDBG*         debug trace file
      /var/mail/*.lock    lock for mail directory
      /var/mail/:saved    directory for holding temp files to prevent loss of
                          data in the event of a system crash.
      /var/mail/user      incoming mail for user; that is, the mailfile

SEE ALSO
      chmod(1), login(1), mailx(1), notify(1), write(1), vacation(1)
      mailpipe(1M), mailsurr(4), mailcnfg(4) in the System Administrator's
      Reference Manual.
      User's Guide.

NOTES
      The "Forward to recipient" feature may result in a loop.  Local loops
      (messages sent to usera, which are forwarded to userb, which are
      forwarded to usera) will be detected immediately. Remote loops (mail sent
      to sys1!usera1 which is forwarded to sys2!userb, which is forwarded to
      sys1!usera) will also be detected, but only after the message has
      exceeded the built-in hop count limit of 20. Both cases of forwarding
      loops will result in a non-delivery notification being sent to the
      message originator.

      As a security precaution, the equivalent of a chmod s+g is performed on
      the mailfile whenever forwarding is activated via the -F option, and a
      chmod s-g is done when forwarding is removed via the -F option.  If the


10/89                                                                    Page 7







mail(1)               UNIX System V(Essential Utilities)                mail(1)


      setGID mode bit is not set when mail attempts to forward an incoming
      message to a command, the operation will fail and a non-delivery report
      with appropriate diagnostics will be sent to the message's originator.

      The interpretation and resulting action taken because of the header lines
      described in the Delivery Notifications section above will only occur if
      this version of mail is installed on the system where the delivery (or
      failure) happens.  Earlier versions of mail may not support any types of
      delivery notification.

      Conditions sometimes result in a failure to remove a lock file.

      After an interrupt, the next message may not be printed; printing may be
      forced by typing a p.








































Page 8                                                                    10/89





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