glenda.party
term% ls -F
term% cat index.txt
MAIL(1)                     General Commands Manual                    MAIL(1)

NAME
       mail,  edmail,  sendmail,  seemail, aliasmail, smtp, smtpd, to, vwhois,
       vismon -  mail commands

SYNOPSIS
       mail [ arg ...  ]

       upas/edmail [ -cmpre ] [ -[fF] mfile ]

       upas/sendmail [ -xr# ] person ...

       upas/to [ -x# ]

       seemail [ -as ] [ -u user ] [ -f file ] [ -r reminders ]

       upas/aliasmail name ...

       smtp [ -fdu ] [ -hhost ] [ -ggateway ] [ .domain ] address sender rcpt-
       list

       smtpd [ -d ]

       vwhois people ...

       vismon system

DESCRIPTION
   Mail
       Mail invokes edmail -m when no persons appear on the command line.   It
       invokes sendmail otherwise.

   Mailbox Editing
       Edmail  edits  a  mailbox.   The  default  mailbox  is  /mail/box/user‐
       name/mbox.  The -f and -F command line options and the s and S  editing
       commands  specify an alternate mailbox.  Unrooted path names are inter‐
       preted relative to /mail/box/username for -f and s and relative to  the
       current  directory for -F and S.  If the mfile argument is omitted, the
       name defaults to stored.

       The options for edmail are:

       -c     Create a mailbox.
       -r     Reverse: print mail in first-in, first-out order.
       -p     Print all the mail messages without prompting for commands.
       -m     Use a manual style of interface, that is, print no messages  un‐
              less directed to.
       -f mfile
              Read messages from the specified file (see above) instead of the
              default mailbox.
       -F mfile
              same as -f with different starting point for relative paths (see
              above).
       -e     Check  silently if there is anything in the mailbox; return zero
              (true) if so, non-zero otherwise.

       Edmail prints messages one at a time, prompting between messages.   Af‐
       ter  printing  a  prompt edmail reads a line from the standard input to
       direct disposition of the message.  Commands, as in ed(1), are  of  the
       form  ‘[range]  command  [arguments]'.   The command is applied to each
       message in the (optional) range addressed by message number and/or reg‐
       ular expressions in the  style  of  ed(1).   A  regular  expression  in
       slashes  searches  among header (postmark) lines; an expression in per‐
       cent signs searches on message content.

       address    to indicate a single message header

       address,address
                  to indicate a range of contiguous message headers

       g/expression/
                  to indicate all message headers matching the regular expres‐
                  sion.

       The commands are:
       b          Print the headers for the next ten messages.
       d          Mark message to be deleted upon exiting edmail.
       h          Print the disposition, size in characters, and  header  line
                  of the message.
       m person ...
                  Mail the message to the named persons.
       M person ...
                  Same  as  m  except that lines typed on the terminal (termi‐
                  nated by EOT) are prefixed to the message.
       p          Print message. An interrupt stops the printing.
       r          Reply to the sender of the message.
       R          Like but with the message appended to the reply.
       s mfile    (Save) Append the message  to  the  specified  mailbox  (see
                  above).
       S mfile    Same  as  s with different starting point for relative paths
                  (see above).
       q          Put undeleted mail back in the mailbox and stop.
       EOT (control-D)
                  Same as
       w file     Same as s with the mail header line(s) stripped.
       W file     Same as w with different starting point for  relative  paths
                  (see above).
       u          Remove mark for deletion.
       x          Exit, without changing the mailbox file.
       ?          Print a command summary.
       |command   Run the command with the message as standard input.
       !command   Escape to the shell to do command.
       =          Print the number of the current message.

   Sending Mail
       Sendmail  takes  the standard input up to an end-of-file and adds it to
       each person's mailbox.  When running in an 8½(1) window, sendmail  au‐
       tomatically  puts  the  window  into Hold mode (see 8½(1)); this means
       that the message can be edited freely, because nothing will be sent  to
       sendmail  until  the ESC key is hit to exit Hold mode.  With option -#,
       sendmail does not send mail, but instead reports what command would  be
       used  to  send  the mail.  With option -x, sendmail does not send mail,
       but instead reports the full mail address of the recipient.  Option  -r
       tells  sendmail  that its input is via a pipe from another program.  It
       won't turn on Hold mode and will expect a From line at the start of the
       message to provide the name of the sender and timestamp.

       The message is automatically postmarked  with  the  sender's  name  and
       date.  Lines that look like postmarks are prefixed with

       Person is a user name on the local system, a name for which there is an
       alias, or a network mail address.

       To is a preprocessor for sendmail.  It takes a mail message as standard
       input,  looks through it for To:, Cc:, and Bcc: header lines, and calls
       sendmail with the addresses in those header lines as destinations.  The
       Bcc: header lines are removed before passing the message to sendmail.

   Addressing Conventions
       The local convention for converting addresses is given by rewrite rules
       in /mail/lib/rewrite; see rewrite(6).  The conventions  generally  used
       are:

       -      A  person  containing  no or is considered a local user or local
              alias.  It is passed as an argument to aliasmail  which  returns
              either  the  expanded alias or local!person if there is no alias
              of that name.

       -      A canonical network mail address has the form  machine!...!name,
              with one or more machines mentioned.

   Aliasmail
       Aliasmail  expands  mail  aliases,  its  arguments,  according to alias
       files.  Each line of an alias file begins with # (comment)  or  with  a
       name.   The rest of a name line gives the expansion.  The expansion may
       contain multiple addresses and may be continued to another line by  ap‐
       pending a backslash.  Items are separated by white space.

       In  expanding  a name, the sender's personal alias file /mail/box/user‐
       name/names is checked first.  Then the system alias files,  listed  one
       per  line in /mail/lib/namefiles, are checked in order.  If the name is
       not found, the expansion is taken to be local!name.

   Mailboxes
       Incoming mail for a user username is put in  the  file  /mail/box/user‐
       name/mbox   unless   either   the  file  /mail/box/username/forward  or
       /mail/box/username/pipeto exists.  The mailbox  must  have  append-only
       and  exclusive-access  mode  (see chmod(1)).  A user must create his or
       her own mailbox using the -c option of edmail.  Mailboxes  are  created
       writable (append-only) but not readable by others.

   Forwarding
       If the file /mail/box/username/forward exists and is readable by every‐
       one,  incoming mail will be forwarded to the addresses contained in the
       first line of the file.  The file may contain multiple addresses.  For‐
       warding loops are caught and resolved by local delivery.

   Filtering
       If the file /mail/box/username/pipeto exists and is readable  and  exe‐
       cutable  by  everyone, it will be run for each incoming message for the
       user.  The message will be piped to it rather than appended to  his/her
       mail box.  The file is run as user none.

   Misc
       The  seemail  command notifies when a new message arrives in your mail‐
       box.  It reads a log file, default /sys/log/mail, of incoming messages.
       It runs continuously where it is  invoked,  displaying  the  names  and
       icons  of senders of new messages.  The -a flag causes it to initialize
       by displaying all the faces in the log; -s causes it to overwrite  mul‐
       tiple  appearances  of  the same face rather than repeatedly displaying
       it.  The -u option displays incoming mail for the  specified  user  in‐
       stead of yourself.

       Seemail's -r option causes it to announce appointments described in the
       file  reminders.  Each line of the appointment file contains the month,
       day, hour, minute and room (any string of non-spaces)  of  an  appoint‐
       ment,  in  a  format  compatible with calendar(1).  The hour is 24-hour
       time.  The fields may be separated by white space, commas,  slashes  or
       colons,  and the room may be followed by arbitrary text.  On the day of
       each appointment, seemail displays a clock-face icon with the  appoint‐
       ment's  room  and  time, once at midnight (or when the program starts),
       then an hour before, then 15 minutes before, then 1 minute before, then
       at the appointment time.  At the same time, it displays  the  room  and
       any  following  text  on  a line below the clock time at the top of its
       window.

       Vwhois just displays in the seemail window the icons of people.  Vismon
       is a version of seemail that connects to a remote  Unix  (not  Plan  9)
       system to look for mail arriving there.

       Smtp  sends the mail message from standard input to the users rcpt-list
       on the host at network address address using the Simple  Mail  Transfer
       Protocol.  The return address of the mail will contain the local system
       name  from  the  environment  variable sysname and the user sender.  If
       .domain is given, it is appended to the end of the system name.  The -u
       option sends the mail in the standard Unix  format  instead  of  RFC822
       format.   The -f flag just prints out the converted message rather than
       sending it to the destination.  The -g option specifies a gateway  sys‐
       tem  to  pass  the message to if smtp can't find an address or MX entry
       for the destination system.  The -d option turns on debugging output to
       standard error.

       Smtpd receives a message  using  the  Simple  Mail  Transfer  Protocol.
       Standard  input  and output are the protocol connection.  The -d option
       turns on debugging output to standard error.  Smtpd is normally run  by
       a network listener such as listen(8).

FILES
       /sys/log/mail
              mail log file

       /mail/box/*
              mail directories

       /mail/box/*/mbox
              mailbox files

       /mail/box/*/forward
              forwarding address(es)

       /mail/box/*/pipeto
              mail filter

       /mail/box/*/L.reading
              mutual exclusion lock for multiple mbox readers

       /mail/box/*/L.mbox
              mutual exclusion lock for altering mbox

       /mail/box/*/dead.letter
              unmailable text

       /mail/box/*/names
              personal alias files

       /mail/lib/rewrite
              rules for handling addresses

       /mail/lib/namefiles
              lists files to search for aliases in

       /lib/face/48x48x?
              directories of icons for seemail

SOURCE
       /rc/bin/mail

       /sys/src/cmd/upas
              source for commands in /bin/upas

       /sys/src/cmd/seemail

       /rc/bin/vismon

       /rc/bin/vwhois

SEE ALSO
       face(6), rewrite(6)

BUGS
       Edmail truncates long headers for searching.

                                                                       MAIL(1)