Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mail(1) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(1)

login(1)

mailx(1)

notify(1)

write(1)

tion(1)

mailsurr(4)

mailcnfg(4)



mail(1)                  USER COMMANDS                    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  con-
     sisting 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 contined on the
     following line if that line starts with white space.

  Sending mail:




                                                                1





mail(1)                  USER COMMANDS                    mail(1)



     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.

     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 edit-
     ing 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 sys-
     tem. 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  sys-
     tem  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 fol-
          lowed by the `?' prompt.
     -p   causes all messages to be printed without prompting for



                                                                2





mail(1)                  USER COMMANDS                    mail(1)



          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 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  con-
     tains 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  mes-
                          sage.

     -                    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



                                                                3





mail(1)                  USER COMMANDS                    mail(1)



                          current message.

     h n                  Display a window of headers around mes-
                          sage 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.

     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  usu-
     ally  indicated.   Also,  notification  is  made if new mail
     arrives while using mail.





                                                                4





mail(1)                  USER COMMANDS                    mail(1)



     The permissions of mailfile may be manipulated  using  chmod
     in  two  ways to alter the function of mail.  The other per-
     missions 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  for-
     warded  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.

     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 exe-
     cuted 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



                                                                5





mail(1)                  USER COMMANDS                    mail(1)



     /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 gen-
     erate a non-delivery notification to the message's  origina-
     tor. 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  mes-
     sages  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 time.

     To remove forwarding enter:
          mail -F ""

     The pair of double quotes is mandatory to set a  NULL  argu-
     ment 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.




                                                                6





mail(1)                  USER COMMANDS                    mail(1)



  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 result-
     ing  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  pro-
     cessing  the  message.  If debug_level is less than zero the
     debug file will always be retained.  The debug_level  speci-
     fied   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 ]

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

     /delivery   Inform the sender that the message was  success-
                 fully delivered to the recipient's mailbox.

     /nodelivery Do  not  inform   the   sender   of   successful
                 deliveries.

     /ignore     Do  not  inform  the  sender   of   unsuccessful



                                                                7





mail(1)                  USER COMMANDS                    mail(1)



                 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, conflict-
     ing, 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  mail-
                         file
     /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),  vaca-
     tion(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 setGID mode bit is not
     set when mail attempts to forward an incoming message  to  a



                                                                8





mail(1)                  USER COMMANDS                    mail(1)



     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.  Ear-
     lier 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.







































                                                                9



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