1898 lines
46 KiB
Groff
1898 lines
46 KiB
Groff
.\" $NetBSD: mail.1,v 1.40 2006/11/28 18:45:32 christos Exp $
|
|
.\"
|
|
.\" Copyright (c) 1980, 1990, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)mail.1 8.8 (Berkeley) 4/28/95
|
|
.\"
|
|
.Dd November 3, 2006
|
|
.Dt MAIL 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm mail ,
|
|
.Nm mailx ,
|
|
.Nm Mail
|
|
.Nd send and receive mail
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl EIinv
|
|
.Op Fl a Ar file
|
|
.Op Fl b Ar bcc-addr
|
|
.Op Fl c Ar cc-addr
|
|
.Op Fl s Ar subject
|
|
.Ar to-addr ...
|
|
.Op Ar sendmail-flags
|
|
.Nm
|
|
.Op Fl EIiNnv
|
|
.Op Fl H Ns Op colon-modifier
|
|
.Fl f
|
|
.Op Ar name
|
|
.Nm
|
|
.Op Fl EIiNnv
|
|
.Op Fl H Ns Op colon-modifier
|
|
.Op Fl u Ar user
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
is an intelligent mail processing system, which has
|
|
a command syntax reminiscent of
|
|
.Xr \&ed 1
|
|
with lines replaced by messages.
|
|
.Pp
|
|
.Bl -tag -width flag
|
|
.It Fl a
|
|
Attach
|
|
.Ar file
|
|
to the message.
|
|
.Ar file
|
|
may be a white-space delimited list of filenames, so care must be
|
|
taken to properly quote filenames that contain white-space.
|
|
.It Fl b
|
|
Send blind carbon copies to
|
|
.Ar list .
|
|
List should be a comma-separated list of names.
|
|
.It Fl c
|
|
Send carbon copies to
|
|
.Ar list
|
|
of users.
|
|
.It Fl E
|
|
Don't send messages with an empty body.
|
|
This is useful for piping errors from cron scripts.
|
|
.It Fl f
|
|
Read in the contents of your
|
|
.Ar mbox
|
|
(or the specified file)
|
|
for processing; when you
|
|
.Ic quit ,
|
|
.Nm
|
|
writes undeleted messages back to this file.
|
|
.It Fl H
|
|
Print the header summaries and exit.
|
|
The optional colon-modifier string must begin with a
|
|
.Sq \&:
|
|
and be followed by one or more of the characters described in the
|
|
.Dq Selecting Messages
|
|
section below.
|
|
E.g.,
|
|
.Qo
|
|
.Nm
|
|
.Fl H Ns :n
|
|
.Qc
|
|
will display just new message headers.
|
|
.It Fl I
|
|
Forces mail to run in interactive mode even when
|
|
input isn't a terminal.
|
|
In particular, the
|
|
.Sq Ic \&~
|
|
special
|
|
character when sending mail is only active in interactive mode.
|
|
.It Fl i
|
|
Ignore tty interrupt signals.
|
|
This is particularly useful when using
|
|
.Nm
|
|
on noisy phone lines.
|
|
.It Fl N
|
|
Inhibits the initial display of message headers
|
|
when reading mail or editing a mail folder.
|
|
.It Fl n
|
|
Inhibits reading
|
|
.Pa /etc/mail.rc
|
|
upon startup.
|
|
.It Fl s
|
|
Specify subject on command line
|
|
(only the first argument after the
|
|
.Fl s
|
|
flag is used as a subject; be careful to quote subjects
|
|
containing spaces.)
|
|
.It Fl u
|
|
Is equivalent to:
|
|
.Pp
|
|
.Dl mail -f /var/mail/user
|
|
.It Fl v
|
|
Verbose mode.
|
|
The details of delivery are displayed on the user's terminal.
|
|
.El
|
|
.Ss Sending mail
|
|
To send a message to one or more people,
|
|
.Nm
|
|
can be invoked with arguments which are the names of people to
|
|
whom the mail will be sent.
|
|
You are then expected to type in your message, followed by an
|
|
.Sq Li control\-D
|
|
at the beginning of a line.
|
|
.Pp
|
|
Any flags following the list of recipients, with arguments, will
|
|
be passed directly to
|
|
.Xr sendmail 1 .
|
|
For example to change your
|
|
.Dv From
|
|
address to
|
|
.Dv somebody@somewhere.net
|
|
you can specify:
|
|
.Pp
|
|
.Dl mail recipient -f somebody@somewhere.net
|
|
.Pp
|
|
To prevent multiple copies of a message being sent to the same
|
|
address, duplicate addresses (after alias expansion) are removed from
|
|
the
|
|
.Ar bcc-addr ,
|
|
.Ar cc-addr ,
|
|
and
|
|
.Ar to-addr
|
|
lists.
|
|
In addition, addresses on the
|
|
.Ar cc-addr
|
|
and
|
|
.Ar to-addr
|
|
lists are removed if they occur on the
|
|
.Ar bcc-addr
|
|
list and addresses on the
|
|
.Ar cc-addr
|
|
list are removed if they occur on the
|
|
.Ar to-addr
|
|
list.
|
|
If the
|
|
.Ar to-addr
|
|
list is empty after these deletions, most systems will insert the line
|
|
.Dq To: undisclosed recipients:; .
|
|
.Pp
|
|
The section below
|
|
.Sx Replying to or originating mail ,
|
|
describes some features of
|
|
.Nm
|
|
available to help you compose your letter.
|
|
.Ss Reading mail
|
|
In normal usage
|
|
.Nm
|
|
is given no arguments and checks your mail out of the post office,
|
|
then prints out a one line header of each message found.
|
|
The current message is initially the first message (numbered 1)
|
|
and can be printed using the
|
|
.Ic print
|
|
command (which can be abbreviated
|
|
.Ql Ic p ) .
|
|
You can move among the messages much as you move between lines in
|
|
.Xr \&ed 1 ,
|
|
with the commands
|
|
.Ql Ic \&+
|
|
and
|
|
.Ql Ic \&\-
|
|
moving backwards and forwards, and simple numbers.
|
|
.Ss Disposing of mail
|
|
After examining a message you can
|
|
.Ic delete
|
|
.Pq Ql Ic d
|
|
the message or
|
|
.Ic reply
|
|
.Pq Ql Ic r
|
|
to it.
|
|
Deletion causes the
|
|
.Nm
|
|
program to forget about the message.
|
|
This is not irreversible; the message can be
|
|
.Ic undeleted
|
|
.Pq Ql Ic u
|
|
by giving its number, or the
|
|
.Nm
|
|
session can be aborted by giving the
|
|
.Ic exit
|
|
.Pq Ql Ic x
|
|
command.
|
|
Deleted messages will, however, usually disappear never to be seen again.
|
|
.Ss Specifying messages
|
|
Commands such as
|
|
.Ic print
|
|
and
|
|
.Ic delete
|
|
can be given a list of message numbers as arguments to apply
|
|
to a number of messages at once.
|
|
Thus
|
|
.Dq Li delete 1 2
|
|
deletes messages 1 and 2, while
|
|
.Dq Li delete 1\-5
|
|
deletes messages 1 through 5.
|
|
The special name
|
|
.Ql Li \&*
|
|
addresses all messages,
|
|
.Ql Li \&^
|
|
denotes the first message,
|
|
.Ql Li \&.
|
|
denotes the current message, and
|
|
.Ql Li \&$
|
|
denotes the last message; thus the command
|
|
.Ic top
|
|
which prints the first few lines of a message could be used in
|
|
.Dq Li top \&*
|
|
to print the first few lines of all messages or
|
|
.Dq Li top \&.-$
|
|
to print the first few lines of current to last messages.
|
|
The previous and next messages are denoted by
|
|
.Ql Li \&-
|
|
and
|
|
.Ql Li \&+
|
|
respectively, when not used in a range.
|
|
.Pp
|
|
Messages may also be specified by the sender's name, by the subject,
|
|
or (if
|
|
.Ar searchheaders
|
|
is defined) by any header field.
|
|
A non-numeric string that does not begin a
|
|
.Sq /
|
|
or with any of the above special
|
|
characters is assumed to specify sender's name: a case insensitive
|
|
substring compare with the senders name is done, unless
|
|
.Ar regex-search
|
|
is defined.
|
|
If the string begins with a
|
|
.Sq /
|
|
then what follows is compared with the subject field, again the
|
|
matching is controled by the
|
|
.Ar regex-search
|
|
variable.
|
|
To search other header fields, see the
|
|
.Ar searchheader
|
|
variable.
|
|
Multiple search specs may be given and they may be mixed with numeric
|
|
lists.
|
|
.Pp
|
|
A list of messages may be restricted by a
|
|
.Sq colon-modifier
|
|
string, i.e., a
|
|
.Sq \&:
|
|
followed by one or more of the characters:
|
|
.Bd -literal -offset indent
|
|
d deleted
|
|
e edited
|
|
m mboxed
|
|
n new
|
|
o old
|
|
p preserved
|
|
r read
|
|
s saved
|
|
t tagged
|
|
u unread and not new
|
|
! invert the meaning of the colon-modifiers
|
|
.Ed
|
|
.Pp
|
|
If there are no address specifications other than colon-modifiers,
|
|
the colon-modifiers apply to all messags.
|
|
Thus
|
|
.Dq Li from netbsd :n
|
|
would display the headers of all new messages with
|
|
.Sq netbsd
|
|
in the sender's address, while
|
|
.Dq Li from :!r
|
|
and
|
|
.Dq Li from :nu
|
|
would both display all new and unread messages.
|
|
Multiple colon-modifiers may be specified and a single
|
|
.Sq \&:
|
|
with no letters following indicates the colon-modifier from the
|
|
preceeding command.
|
|
Note: commands cannot select messages that are not displayed, such as
|
|
deleted or hidden messages, the exception being the
|
|
.Ic undelete
|
|
command.
|
|
.Pp
|
|
.Ss Replying to or originating mail
|
|
You can use the
|
|
.Ic reply
|
|
command to set up a response to a message, sending it back to the
|
|
person who it was from.
|
|
Text you then type in, up to an end-of-file,
|
|
defines the contents of the message.
|
|
While you are composing a message,
|
|
.Nm
|
|
treats lines beginning with the character
|
|
.Ql Ic \&~
|
|
specially.
|
|
For instance, typing
|
|
.Ql Ic \&~m
|
|
(alone on a line) will place a copy
|
|
of the current message into the response right shifting it by a tabstop
|
|
(see
|
|
.Em indentprefix
|
|
variable, below).
|
|
Other escapes will set up subject fields, add and delete recipients
|
|
to the message, and allow you to escape to an editor to revise the
|
|
message or to a shell to run some commands.
|
|
(These options are given in the summary below.)
|
|
.Ss Ending a mail processing session
|
|
You can end a
|
|
.Nm
|
|
session with the
|
|
.Ic quit
|
|
.Pq Ql Ic q
|
|
command.
|
|
Messages which have been examined go to your
|
|
.Ar mbox
|
|
file unless they have been deleted in which case they are discarded.
|
|
Unexamined messages go back to the post office.
|
|
(See the
|
|
.Fl f
|
|
option above).
|
|
.Ss Personal and systemwide distribution lists
|
|
It is also possible to create a personal distribution lists so that,
|
|
for instance, you can send mail to
|
|
.Dq Li cohorts
|
|
and have it go
|
|
to a group of people.
|
|
Such lists can be defined by placing a line like
|
|
.Pp
|
|
.Dl alias cohorts bill ozalp jkf mark kridle@ucbcory
|
|
.Pp
|
|
in the file
|
|
.Pa \&.mailrc
|
|
in your home directory.
|
|
The current list of such aliases can be displayed with the
|
|
.Ic alias
|
|
command in
|
|
.Nm .
|
|
System wide distribution lists can be created by editing
|
|
.Pa /etc/mail/aliases ,
|
|
see
|
|
.Xr aliases 5
|
|
and
|
|
.Xr sendmail 1 ;
|
|
these are kept in a different syntax.
|
|
In mail you send, personal aliases will be expanded in mail sent
|
|
to others so that they will be able to
|
|
.Ic reply
|
|
to the recipients.
|
|
System wide
|
|
.Ic aliases
|
|
are not expanded when the mail is sent,
|
|
but any reply returned to the machine will have the system wide
|
|
alias expanded as all mail goes through
|
|
.Xr sendmail 1 .
|
|
.Ss Network mail (ARPA, UUCP, Berknet)
|
|
See
|
|
.Xr mailaddr 7
|
|
for a description of network addresses.
|
|
.Pp
|
|
.Nm
|
|
has a number of options which can be set in the
|
|
.Pa .mailrc
|
|
file to alter its behavior; thus
|
|
.Dq Li set askcc
|
|
enables the
|
|
.Ar askcc
|
|
feature.
|
|
(These options are summarized below.)
|
|
.Sh SUMMARY
|
|
(Adapted from the
|
|
.Dq Mail Reference Manual )
|
|
.Pp
|
|
Each command is typed on a line by itself, and may take arguments
|
|
following the command word.
|
|
The command need not be typed in its
|
|
entirety \- the first command which matches the typed prefix is used.
|
|
For commands which take message lists as arguments, if no message
|
|
list is given, then the next message forward which satisfies the
|
|
command's requirements is used.
|
|
If there are no messages forward of the current message, the search
|
|
proceeds backwards, and if there are no good messages at all,
|
|
.Nm
|
|
types
|
|
.Dq Li \&No applicable messages
|
|
and aborts the command.
|
|
.Bl -tag -width delete
|
|
.It Ic \&\-
|
|
Print out the preceding message.
|
|
If given a numeric
|
|
argument
|
|
.Ar n ,
|
|
goes to the
|
|
.Ar n Ap th
|
|
previous message and prints it.
|
|
.It Ic \&?
|
|
Prints a brief summary of commands.
|
|
.It Ic \&!
|
|
Executes the shell
|
|
(see
|
|
.Xr sh 1
|
|
and
|
|
.Xr csh 1 )
|
|
command which follows.
|
|
.It Ic \&|
|
|
Pipe the current message body through the shell
|
|
(see
|
|
.Xr sh 1
|
|
and
|
|
.Xr csh 1 )
|
|
command which follows.
|
|
.It Ic Detach
|
|
Like
|
|
.Ic detach
|
|
but also saves MIME parts that don't have a filename associated with
|
|
them.
|
|
For the unnamed parts, a filename is suggested containing the message
|
|
and part numbers, and the subtype.
|
|
.It Ic More
|
|
.Pq Ic M
|
|
Like
|
|
.Ic more
|
|
but also prints out ignored header fields.
|
|
.It Ic Page
|
|
.Pq Ic \&Pa
|
|
A synonym for
|
|
.Ic More .
|
|
.It Ic Print
|
|
.Pq Ic P
|
|
Like
|
|
.Ic print
|
|
but also prints out ignored header fields.
|
|
See also
|
|
.Ic print ,
|
|
.Ic more ,
|
|
.Ic page ,
|
|
.Ic view ,
|
|
.Ic ignore ,
|
|
and
|
|
.Ic retain .
|
|
.It Ic Reply
|
|
.Pq Ic R
|
|
Reply to originator.
|
|
Does not reply to other recipients of the original message.
|
|
.It Ic Save
|
|
.Pq Ic S
|
|
Same as
|
|
.Ic save
|
|
except that all header fields are saved ignoring the
|
|
.Ic saveignore
|
|
or
|
|
.Ic saveretain
|
|
lists.
|
|
.It Ic Type
|
|
.Pq Ic T
|
|
Identical to the
|
|
.Ic Print
|
|
command.
|
|
.It Ic View
|
|
.Pq Ic V
|
|
Like
|
|
.Ic Print
|
|
but has the opposite MIME decoding behavior.
|
|
(See the
|
|
.Ar mime-decode-message
|
|
variable.)
|
|
.It Ic alias
|
|
.Pq Ic a
|
|
With no arguments, prints out all currently-defined aliases.
|
|
With one argument, prints out that alias.
|
|
With more than one argument, creates
|
|
a new alias or changes an old one.
|
|
.It Ic alternates
|
|
.Pq Ic alt
|
|
The
|
|
.Ic alternates
|
|
command is useful if you have accounts on several machines.
|
|
It can be used to inform
|
|
.Nm
|
|
that the listed addresses are really you.
|
|
When you
|
|
.Ic reply
|
|
to messages,
|
|
.Nm
|
|
will not send a copy of the message to any of the addresses
|
|
listed on the
|
|
.Ic alternates
|
|
list.
|
|
If the
|
|
.Ic alternates
|
|
command is given with no argument, the current set of alternative
|
|
names is displayed.
|
|
.It Ic chdir
|
|
.Pq Ic c
|
|
Changes the user's working directory to that specified, if given.
|
|
If no directory is given, then changes to the user's login directory.
|
|
.It Ic copy
|
|
.Pq Ic co
|
|
The
|
|
.Ic copy
|
|
command does the same thing that
|
|
.Ic save
|
|
does, except that it does not mark the messages it
|
|
is used on for deletion when you quit.
|
|
.It Ic delete
|
|
.Pq Ic d
|
|
Takes a list of messages as argument and marks them all as deleted.
|
|
Deleted messages will not be saved in
|
|
.Ar mbox ,
|
|
nor will they be available for most other commands.
|
|
.It Ic detach
|
|
Takes a message list followed by a target directory, decodes each MIME
|
|
part in the message list, and saves it in the target directory.
|
|
If the message list is empty, use the current message.
|
|
If the directory is not specified, use the directory specified by
|
|
.Ar mime-detach-dir
|
|
variable and, if that is empty, default to the directory
|
|
.Nm
|
|
was started in.
|
|
For each MIME part in the message list, the filename is displayed for
|
|
confirmation or changes.
|
|
If an empty name is entered, the part is skipped.
|
|
If the filename already exists, the user will be prompted before
|
|
overwriting it.
|
|
Only MIME parts with an associated filename in the Content-Type or
|
|
Content-Disposition fields are decoded.
|
|
(See
|
|
.Ic Detach
|
|
to detach all parts.)
|
|
The MIME extension hooks and character set conversion are ignored.
|
|
.It Ic dp
|
|
(also
|
|
.Ic dt )
|
|
Deletes the current message and prints the next message.
|
|
If there is no next message,
|
|
.Nm
|
|
says
|
|
.Dq Li "at EOF" .
|
|
.It Ic down
|
|
XXX - document me!
|
|
.It Ic edit
|
|
.Pq Ic e
|
|
Takes a list of messages and points the text editor at each one in
|
|
turn.
|
|
On return from the editor, the message is read back in.
|
|
.It Ic else
|
|
Switch the command execution condition set by the previous
|
|
.Ic if ,
|
|
.Ic ifdef ,
|
|
or
|
|
.Ic ifndef
|
|
command.
|
|
.It Ic endif
|
|
Terminate an
|
|
.Ic if ,
|
|
.Ic ifdef ,
|
|
or
|
|
.Ic ifndef
|
|
command.
|
|
.It Ic exit
|
|
.Po Ic ex
|
|
or
|
|
.Ic x
|
|
.Pc
|
|
Effects an immediate return to the Shell without
|
|
modifying the user's system mailbox, his
|
|
.Ar mbox
|
|
file, or his edit file in
|
|
.Fl f .
|
|
.It Ic expose
|
|
XXX - document me!
|
|
.It Ic file
|
|
.Pq Ic fi
|
|
The same as
|
|
.Ic folder .
|
|
.It Ic folders
|
|
List the names of the folders in your folder directory.
|
|
.It Ic folder
|
|
.Pq Ic fo
|
|
The
|
|
.Ic folder
|
|
command switches to a new mail file or folder.
|
|
With no arguments, it tells you which file you are currently reading.
|
|
If you give it an argument, it will write out changes (such
|
|
as deletions) you have made in the current file and read in
|
|
the new file.
|
|
Some special conventions are recognized for the name.
|
|
.Sq #
|
|
means the previous file,
|
|
.Sq %
|
|
means your system mailbox,
|
|
.Dq %user
|
|
means user's system mailbox,
|
|
.Sq \*[Am]
|
|
means your
|
|
.Ar mbox
|
|
file, and
|
|
.Dq +folder
|
|
means a file in your folder directory.
|
|
.It Ic from
|
|
.Pq Ic f
|
|
Takes a list of messages and prints their message headers.
|
|
.It Ic headers
|
|
.Pq Ic h
|
|
Lists the current range of headers, which is an 18\-message group.
|
|
If a
|
|
.Ql \&+
|
|
argument is given, then the next 18\-message group is printed, and
|
|
if a
|
|
.Ql \&\-
|
|
argument is given, the previous 18\-message group is printed.
|
|
.It Ic help
|
|
A synonym for
|
|
.Ic \&?
|
|
.It Ic hide
|
|
XXX - document me!
|
|
.It Ic hold
|
|
.Po Ic ho ,
|
|
also
|
|
.Ic preserve
|
|
.Pc
|
|
Takes a message list and marks each message therein to be saved in
|
|
the user's system mailbox instead of in
|
|
.Ar mbox .
|
|
Does not override the
|
|
.Ic delete
|
|
command.
|
|
.It Ic if
|
|
Execute commands that follow depending on the operating mode. The
|
|
current supported modes are "receiving", "sending", and "headersonly".
|
|
For example, one use might be:
|
|
.Bd -literal -offset 0
|
|
if headersonly
|
|
set header-format="%P%Q%3i %-21.20f %m/%d %R %3K \"%q\""
|
|
else
|
|
set header-format="%P%Q%?& ?%3i %-21.20f %a %b %e %R %3K/%-5O \"%q\""
|
|
endif
|
|
.Ed
|
|
.It Ic ifdef
|
|
Execute commands that follow if the specified variable is defined.
|
|
Note: This includes environment variables.
|
|
.It Ic ifndef
|
|
Execute commands that follow if the specified variable is not
|
|
defined.
|
|
.It Ic ignore
|
|
Add the list of header fields named to the
|
|
.Ar ignored list .
|
|
Header fields in the ignore list are not printed
|
|
on your terminal when you print a message.
|
|
This command is very handy for suppression of certain machine-generated
|
|
header fields.
|
|
The
|
|
.Ic Type
|
|
and
|
|
.Ic Print
|
|
commands can be used to print a message in its entirety, including
|
|
ignored fields.
|
|
.It Ic inc
|
|
Incorporate any new messages that have arrived while mail
|
|
is being read.
|
|
The new messages are added to the end of the message list,
|
|
and the current message is reset to be the first new mail message.
|
|
This does not renumber the existing message list, nor does
|
|
it cause any changes made so far to be saved.
|
|
If
|
|
.Ic ignore
|
|
is executed with no arguments, it lists the current set of
|
|
ignored fields.
|
|
.It Ic mail
|
|
.Pq Ic m
|
|
Takes as argument login names and distribution group names and sends
|
|
mail to those people.
|
|
.It Ic mbox
|
|
Indicate that a list of messages be sent to
|
|
.Ic mbox
|
|
in your home directory when you quit.
|
|
This is the default action for messages if you do
|
|
.Em not
|
|
have the
|
|
.Ic hold
|
|
option set.
|
|
.It Ic mkread
|
|
.Pq Ic mk
|
|
Takes a message list and marks each message as
|
|
having been read.
|
|
.It Ic more
|
|
.Pq Ic \&mo
|
|
Takes a message list and invokes the pager on that list.
|
|
.It Ic next
|
|
.Pf ( Ic n ,
|
|
like
|
|
.Ic \&+
|
|
or
|
|
.Tn CR )
|
|
Goes to the next message in sequence and types it.
|
|
With an argument list, types the next matching message.
|
|
.It Ic page
|
|
.Pq Ic pa
|
|
A synonym for
|
|
.Ic more .
|
|
.It Ic preserve
|
|
.Pq Ic pre
|
|
A synonym for
|
|
.Ic hold .
|
|
.It Ic print
|
|
.Pq Ic p
|
|
Takes a message list and types out each message on the user's terminal.
|
|
.It Ic quit
|
|
.Pq Ic q
|
|
Terminates the session, saving all undeleted, unsaved messages in
|
|
the user's
|
|
.Ar mbox
|
|
file in his login directory, preserving all messages marked with
|
|
.Ic hold
|
|
or
|
|
.Ic preserve
|
|
or never referenced in his system mailbox, and removing all other
|
|
messages from his system mailbox.
|
|
If new mail has arrived during the session, the message
|
|
.Dq Li "You have new mail"
|
|
is given.
|
|
If given while editing a mailbox file with the
|
|
.Fl f
|
|
flag, then the edit file is rewritten.
|
|
A return to the Shell is effected, unless the rewrite of edit file
|
|
fails, in which case the user can escape with the
|
|
.Ic exit
|
|
command.
|
|
.It Ic reply
|
|
.Pq Ic r
|
|
Takes a message list and sends mail to the sender and all
|
|
recipients of the specified message.
|
|
The default message must not be deleted.
|
|
.It Ic respond
|
|
A synonym for
|
|
.Ic reply .
|
|
.It Ic retain
|
|
Add the list of header fields named to the
|
|
.Ar retained list .
|
|
Only the header fields in the retained list
|
|
are shown on your terminal when you print a message.
|
|
All other header fields are suppressed.
|
|
The
|
|
.Ic type
|
|
and
|
|
.Ic print
|
|
commands can be used to print a message in its entirety.
|
|
If
|
|
.Ic retain
|
|
is executed with no arguments, it lists the current set of
|
|
retained fields.
|
|
.It Ic reverse
|
|
XXX - document me!
|
|
.It Ic save
|
|
.Pq Ic s
|
|
Takes a message list and a filename and appends each message in
|
|
turn to the end of the file.
|
|
The filename in quotes, followed by the line
|
|
count and character count is echoed on the user's terminal.
|
|
.It Ic set
|
|
.Pq Ic se
|
|
With no arguments, prints all variable values.
|
|
Otherwise, sets option.
|
|
Arguments are of the form
|
|
.Ar option=value
|
|
(no space before or after =) or
|
|
.Ar option .
|
|
Quotation marks may be placed around any part of the assignment
|
|
statement to quote blanks or tabs, i.e.
|
|
.Dq Li "set indentprefix=\*q-\*[Gt]\*q"
|
|
.It Ic saveignore
|
|
.Ic Saveignore
|
|
is to
|
|
.Ic save
|
|
what
|
|
.Ic ignore
|
|
is to
|
|
.Ic print
|
|
and
|
|
.Ic type .
|
|
Header fields thus marked are filtered out when
|
|
saving a message by
|
|
.Ic save
|
|
or when automatically saving to
|
|
.Ar mbox .
|
|
.\" .pl +1
|
|
.It Ic saveretain
|
|
.Ic Saveretain
|
|
is to
|
|
.Ic save
|
|
what
|
|
.Ic retain
|
|
is to
|
|
.Ic print
|
|
and
|
|
.Ic type .
|
|
Header fields thus marked are the only ones saved
|
|
with a message when saving by
|
|
.Ic save
|
|
or when automatically saving to
|
|
.Ar mbox .
|
|
.Ic Saveretain
|
|
overrides
|
|
.Ic saveignore .
|
|
.It Ic shell
|
|
.Pq Ic sh
|
|
Invokes an interactive version of the shell.
|
|
.It Ic show
|
|
.Pq Ic sho
|
|
Takes a list of variables and prints out their values in the form
|
|
.Ar option=value .
|
|
If the list is empty, all variable values are shown.
|
|
.It Ic size
|
|
Takes a message list and prints out the size in characters of each
|
|
message.
|
|
.It Ic smopts
|
|
Takes an
|
|
.Sq address-spec
|
|
followed by the sendmail flags that should be used when sending mail
|
|
to an address that matches that
|
|
.Sq address-spec .
|
|
If no sendmail flags are specified, then list the sendmail flags in
|
|
effect for the
|
|
.Sq address-spec .
|
|
If the
|
|
.Sq address-spec
|
|
is also omitted, then list all
|
|
.Ic smopts
|
|
settings.
|
|
The
|
|
.Sq address-spec
|
|
may be an alias, address, domain (beginning with a
|
|
.Sq @ ) ,
|
|
or subdomain
|
|
(begining with a
|
|
.Sq \&. ) .
|
|
If mail is sent to multiple users, the sendmail flags are
|
|
used only if the flags are the same for each recipients.
|
|
If
|
|
.Ar smopts-verify
|
|
is set, then you will be asked to verify the sendmail flags (if there
|
|
are any) before the mail is sent.
|
|
Address matching is case insensitive and done from most specific to
|
|
least.
|
|
.Pp
|
|
For example if
|
|
you have:
|
|
.Bd -literal -offset indent
|
|
smopts mylist -F "List Maintainer"
|
|
smopts @NetBSD.org -f anon@somewhere.net -F "Anon Ymous"
|
|
smopts friend@NetBSD.org ""
|
|
.Ed
|
|
.Pp
|
|
then mail sent to any of the addresses that the
|
|
.Sq mylist
|
|
alias expands to would have the sender's name set to
|
|
.Qq List Maintainer .
|
|
Mail sent to anyone at NetBSD.org other than
|
|
.Sq friend@NetBSD.org
|
|
would look like it was sent from
|
|
.Sq anon@somewhere.net
|
|
by
|
|
.Qq Anon Ymous .
|
|
Mail sent to
|
|
.Sq friend@NetBSD.org
|
|
would not have any sendmail flags set (unless they are set by the
|
|
.Ic \&~h
|
|
escape).
|
|
.It Ic sort
|
|
XXX - document me!
|
|
.It Ic source
|
|
The
|
|
.Ic source
|
|
command reads commands from a file.
|
|
.It Ic thread
|
|
XXX - document me!
|
|
.It Ic top
|
|
Takes a message list and prints the top few lines of each.
|
|
The number of lines printed is controlled by the variable
|
|
.Ic toplines
|
|
and defaults to five.
|
|
.It Ic type
|
|
.Pq Ic t
|
|
A synonym for
|
|
.Ic print .
|
|
.It Ic unalias
|
|
Takes a list of names defined by
|
|
.Ic alias
|
|
commands and discards the remembered groups of users.
|
|
The group names no longer have any significance.
|
|
.It Ic undelete
|
|
.Pq Ic u
|
|
Takes a message list and marks each message as
|
|
.Ic not
|
|
being deleted.
|
|
.It Ic unread
|
|
.Pq Ic unr
|
|
Takes a message list and marks each message as
|
|
.Em not
|
|
having been read.
|
|
.It Ic unset
|
|
Takes a list of option names and discards their remembered values;
|
|
the inverse of
|
|
.Ic set .
|
|
.It Ar unsmopts
|
|
Takes a list of
|
|
.Sq address-specs
|
|
defined by
|
|
.Ic smopts
|
|
commands and discards them from the smopts datebase.
|
|
.It Ic unthread
|
|
XXX - document me!
|
|
.It Ic up
|
|
XXX - document me!
|
|
.It Ic view
|
|
.Pq Ic vie
|
|
Like
|
|
.Ic print
|
|
but has the opposite MIME decoding behavior.
|
|
(See the
|
|
.Ar mime-decode-message
|
|
variable.)
|
|
.It Ic visual
|
|
.Pq Ic v
|
|
Takes a message list and invokes the display editor on each message.
|
|
.It Ic write
|
|
.Pq Ic w
|
|
Similar to
|
|
.Ic save ,
|
|
except that
|
|
.Em only
|
|
the message body
|
|
.Em ( without
|
|
the header) is saved.
|
|
Extremely useful for such tasks as sending and receiving source
|
|
program text over the message system.
|
|
.It Ic xit
|
|
.Pq Ic x
|
|
A synonym for
|
|
.Ic exit .
|
|
.It Ic z
|
|
.Nm
|
|
presents message headers in windowfuls as described under the
|
|
.Ic headers
|
|
command.
|
|
You can move
|
|
.Nm Ns Ap s
|
|
attention forward to the next window with the
|
|
.Ic \&z
|
|
command.
|
|
Also, you can move to the previous window by using
|
|
.Ic \&z\&\- .
|
|
.El
|
|
.Ss Tilde/Escapes
|
|
Here is a summary of the tilde escapes, which are used when composing
|
|
messages to perform special functions.
|
|
Tilde escapes are only recognized at the beginning of lines.
|
|
The name
|
|
.Dq Em tilde\ escape
|
|
is somewhat of a misnomer since the actual escape character can be set
|
|
by the option
|
|
.Ic escape .
|
|
.Bl -tag -width Ds
|
|
.It Ic \&~! Ns Ar command
|
|
Execute the indicated shell command, then return to the message.
|
|
.It Ic \&~@ Op Ar filelist
|
|
Add the files in the white-space delimited
|
|
.Ar filelist
|
|
to the attachment list.
|
|
If
|
|
.Ar filelist
|
|
is omitted, edit the attachment list, possibly appending to it: For
|
|
each file in the list the user is prompted to change its attachment
|
|
data.
|
|
Changing the filename to empty will delete it from the list.
|
|
Upon reaching the end of the attachment list, the user is prompted for
|
|
additional files to attach until an empty filename is given.
|
|
Filenames containing white-space can only be added in this
|
|
.Qq edit
|
|
mode.
|
|
.It Ic \&~a
|
|
Inserts the autograph string from the sign= option into the message.
|
|
.It Ic \&~A
|
|
Inserts the autograph string from the Sign= option into the message.
|
|
.It Ic \&~b Ns Ar name ...
|
|
Add the given names to the list of carbon copy recipients but do not make
|
|
the names visible in the Cc: line
|
|
.Dq ( blind
|
|
carbon copy).
|
|
.It Ic \&~c Ns Ar name ...
|
|
Add the given names to the list of carbon copy recipients.
|
|
.It Ic \&~d
|
|
Read the file
|
|
.Dq Pa dead.letter
|
|
from your home directory into the message.
|
|
.It Ic \&~e
|
|
Invoke the text editor on the message collected so far.
|
|
After the editing session is finished, you may continue appending
|
|
text to the message.
|
|
.It Ic \&~f Ns Ar messages
|
|
Read the named messages into the message being sent.
|
|
If no messages are specified, read in the current message.
|
|
Message headers currently being ignored (by the
|
|
.Ic ignore
|
|
or
|
|
.Ic retain
|
|
command) are not included.
|
|
.It Ic \&~F Ns Ar messages
|
|
Identical to
|
|
.Ic \&~f ,
|
|
except all message headers are included.
|
|
.It Ic \&~h
|
|
Edit the message header fields, and the options passed to sendmail, by
|
|
typing each one in turn and allowing the user to append text to the
|
|
end or modify the field by using the current terminal erase and kill
|
|
characters.
|
|
If
|
|
.Xr editline 3
|
|
support is included, then that line editor is used.
|
|
.It Ic \&~i Ns Ar string
|
|
Inserts the value of the named option into the text of the message.
|
|
.It Ic \&~m Ns Ar messages
|
|
Read the named messages into the message being sent, indented by a
|
|
tab or by the value of
|
|
.Ar indentprefix .
|
|
If no messages are specified, read the current message.
|
|
Message headers currently being ignored (by the
|
|
.Ic ignore
|
|
or
|
|
.Ic retain
|
|
command) are not included.
|
|
.It Ic \&~M Ns Ar messages
|
|
Identical to
|
|
.Ic \&~m ,
|
|
except all message headers are included.
|
|
.It Ic \&~p
|
|
Print out the message collected so far, prefaced by the message header
|
|
fields.
|
|
.It Ic \&~q
|
|
Abort the message being sent, copying the message to
|
|
.Dq Pa dead.letter
|
|
in your home directory if
|
|
.Ic save
|
|
is set.
|
|
.It Ic \&~x
|
|
Exits as with \&~q, except the message is not saved in dead.letter.
|
|
.It Ic \&~r Ns Ar filename
|
|
.It Ic \&~\*[Lt] Ns Ar filename
|
|
Reads the named file into the message.
|
|
If the argument begins with
|
|
.Sq \&! ,
|
|
the rest of the string is taken as an arbitrary system command and is
|
|
executed, with the standard output inserted into the message.
|
|
.It Ic \&~s Ns Ar string
|
|
Cause the named string to become the current subject field.
|
|
.It Ic \&~\&t Ns Ar name ...
|
|
Add the given names to the direct recipient list.
|
|
.It Ic \&~\&v
|
|
Invoke an alternative editor (defined by the
|
|
.Ev VISUAL
|
|
option) on the message collected so far.
|
|
Usually, the alternative editor will be a screen editor.
|
|
After you quit the editor, you may resume appending
|
|
text to the end of your message.
|
|
.It Ic \&~w Ns Ar filename
|
|
Write the message onto the named file.
|
|
.It Ic \&~\&| Ns Ar command
|
|
Pipe the message through the command as a filter.
|
|
If the command gives no output or terminates abnormally, retain
|
|
the original text of the message.
|
|
The command
|
|
.Xr fmt 1
|
|
is often used as
|
|
.Ic command
|
|
to rejustify the message.
|
|
.It Ic \&~: Ns Ar mail-command
|
|
Execute the given mail command.
|
|
Not all commands, however, are allowed.
|
|
.It Ic \&~~ Ns Ar string
|
|
Insert the string of text in the message prefaced by a single ~.
|
|
If you have changed the escape character, then you should double
|
|
that character in order to send it.
|
|
.El
|
|
.Ss Mail Options
|
|
Options are controlled via
|
|
.Ic set
|
|
and
|
|
.Ic unset
|
|
commands.
|
|
Options may be either binary, in which case it is only
|
|
significant to see whether they are set or not; or string, in which
|
|
case the actual value is of interest.
|
|
The binary options include the following:
|
|
.Bl -tag -width append
|
|
.It Ar append
|
|
Causes messages saved in
|
|
.Ar mbox
|
|
to be appended to the end rather than prepended.
|
|
This should always be set (perhaps in
|
|
.Pa /etc/mail.rc ) .
|
|
.It Ar ask , Ar asksub
|
|
Causes
|
|
.Nm
|
|
to prompt you for the subject of each message you send.
|
|
If you respond with simply a newline, no subject field will be sent.
|
|
.It Ar askcc
|
|
Causes you to be prompted for additional carbon copy recipients at
|
|
the end of each message.
|
|
Responding with a newline indicates your
|
|
satisfaction with the current list.
|
|
.It Ar autoinc
|
|
Causes new mail to be automatically incorporated when it arrives.
|
|
Setting this is similar to issuing the
|
|
.Ic inc
|
|
command at each prompt, except that the current message is not
|
|
reset when new mail arrives.
|
|
.It Ar askbcc
|
|
Causes you to be prompted for additional blind carbon copy recipients
|
|
at the end of each message.
|
|
Responding with a newline indicates your
|
|
satisfaction with the current list.
|
|
.It Ar autoprint
|
|
Causes the
|
|
.Ic delete
|
|
command to behave like
|
|
.Ic dp
|
|
\- thus, after deleting a message, the next one will be typed
|
|
automatically.
|
|
.It Ar debug
|
|
Setting the binary option
|
|
.Ar debug
|
|
is the same as specifying
|
|
.Fl d
|
|
on the command line and causes
|
|
.Nm
|
|
to output all sorts of information useful for debugging
|
|
.Nm .
|
|
.It Ar dot
|
|
The binary option
|
|
.Ar dot
|
|
causes
|
|
.Nm
|
|
to interpret a period alone on a line as the terminator
|
|
of a message you are sending.
|
|
.It Ar hold
|
|
This option is used to hold messages in the system mailbox
|
|
by default.
|
|
.It Ar ignore
|
|
Causes interrupt signals from your terminal to be ignored and echoed as
|
|
@'s.
|
|
.It Ar ignoreeof
|
|
An option related to
|
|
.Ar dot
|
|
is
|
|
.Ar ignoreeof
|
|
which makes
|
|
.Nm
|
|
refuse to accept a control-D as the end of a message.
|
|
.Ar Ignoreeof
|
|
also applies to
|
|
.Nm
|
|
command mode.
|
|
.It Ar metoo
|
|
Usually, when a group is expanded that contains the sender, the sender
|
|
is removed from the expansion.
|
|
Setting this option causes the sender to be included in the group.
|
|
.It Ar mime-attach-list
|
|
If set, the command line flag
|
|
.Fl a
|
|
will accept a whitespace delimited list of files.
|
|
Otherwise, its argument is interpreted as a single filename.
|
|
Warning: If enabled, care must be taken to properly quote files that
|
|
contain whitespace, both from the shell and from this second expansion
|
|
done by
|
|
.Nm .
|
|
.It Ar mime-decode-message
|
|
If set, the
|
|
.Ic More ,
|
|
.Ic more ,
|
|
.Ic Page ,
|
|
.Ic page ,
|
|
.Ic Print ,
|
|
.Ic print ,
|
|
.Ic Type ,
|
|
and
|
|
.Ic type
|
|
commands will display decoded the MIME messages.
|
|
Otherwise, they display the undecoded message.
|
|
Recall that the
|
|
.Ic View
|
|
and
|
|
.Ic view
|
|
commands always have the opposite MIME decoding behavior from these
|
|
commands.
|
|
.It Ar noheader
|
|
Setting the option
|
|
.Ar noheader
|
|
is the same as giving the
|
|
.Fl N
|
|
flag on the command line.
|
|
.It Ar nosave
|
|
Normally, when you abort a message with two
|
|
.Tn RUBOUT
|
|
(erase or delete)
|
|
.Nm
|
|
copies the partial letter to the file
|
|
.Dq Pa dead.letter
|
|
in your home directory.
|
|
Setting the binary option
|
|
.Ar nosave
|
|
prevents this.
|
|
.It Ar quiet
|
|
Suppresses the printing of the version when first invoked.
|
|
.It Ar recursive-commands
|
|
When defined, and threading is in effect, the following commands
|
|
operate on the entire thread (if it is
|
|
.Sq hidden )
|
|
rather than just the top displayed message of the thread:
|
|
.Bd -literal -offset indent
|
|
More Page Print Type View more page print type view
|
|
top
|
|
Save copy save write
|
|
Detach detach
|
|
delete dp dt
|
|
undelete
|
|
hold preserve
|
|
mbox mkread touch unread
|
|
.Ed
|
|
.Pp
|
|
If not defined, or if the threads are
|
|
.Sq exposed ,
|
|
commands behave exactly as they do in non-threaded mode, i.e., each
|
|
operates on individual messages.
|
|
.It Ar Replyall
|
|
Reverses the sense of
|
|
.Ic reply
|
|
and
|
|
.Ic Reply
|
|
commands.
|
|
.It Ar searchheaders
|
|
If this option is set, then a message-list specifier in the form
|
|
.Dq /x:y
|
|
will expand to all messages containing the substring
|
|
.Dq y
|
|
in the header field
|
|
.Dq x .
|
|
The string search is case insensitive.
|
|
If
|
|
.Dq x
|
|
is omitted, it will default to the
|
|
.Dq Subject
|
|
header field.
|
|
The two forms
|
|
.Dq /from:y
|
|
and
|
|
.Dq /to:y
|
|
are special.
|
|
The first will match all messages which contain the substring
|
|
.Dq y
|
|
in the headline (which is added locally at receipt time and begins
|
|
with
|
|
.Dq From \& ) .
|
|
The second will match all messages containing the substring
|
|
.Dq y
|
|
in the
|
|
.Dq To ,
|
|
.Dq Cc ,
|
|
or
|
|
.Dq Bcc
|
|
header fields.
|
|
The check for
|
|
.Dq from
|
|
and
|
|
.Dq to
|
|
is case sensitive, so that
|
|
.Dq /From:y
|
|
and
|
|
.Dq /To:y
|
|
can be used to search the
|
|
.Dq From:
|
|
and
|
|
.Dq To:
|
|
fields, respectively.
|
|
.It Ar smopts-verify
|
|
Verify the sendmail options used on outgoing mail if they were obtained from a
|
|
.Ar smopts
|
|
match.
|
|
This has no effect if there are no sendmail flags or if the flags
|
|
were set by the
|
|
.Ic \&~h
|
|
escape.
|
|
.It Ar verbose
|
|
Setting the option
|
|
.Ar verbose
|
|
is the same as using the
|
|
.Fl v
|
|
flag on the command line.
|
|
When mail runs in verbose mode, the actual delivery of messages is
|
|
displayed on the user's terminal.
|
|
.El
|
|
.Ss Option String Values
|
|
.Bl -tag -width Va
|
|
.It Ev EDITOR
|
|
Pathname of the text editor to use in the
|
|
.Ic edit
|
|
command and
|
|
.Ic \&~e
|
|
escape.
|
|
If not defined, then a default editor is used.
|
|
.It Ev LISTER
|
|
Pathname of the directory lister to use in the
|
|
.Ic folders
|
|
command.
|
|
Default is
|
|
.Pa /bin/ls .
|
|
.It Ev PAGER
|
|
Pathname of the program to use in the
|
|
.Ic more
|
|
command or when
|
|
.Ic crt
|
|
variable is set.
|
|
The default paginator
|
|
.Xr more 1
|
|
is used if this option is not defined.
|
|
.It Ev SHELL
|
|
Pathname of the shell to use in the
|
|
.Ic \&!
|
|
command and the
|
|
.Ic \&~!
|
|
escape.
|
|
A default shell is used if this option is not defined.
|
|
.It Ev VISUAL
|
|
Pathname of the text editor to use in the
|
|
.Ic visual
|
|
command and
|
|
.Ic \&~v
|
|
escape.
|
|
.It Va crt
|
|
The valued option
|
|
.Va crt
|
|
is used as a threshold to determine how long a message must
|
|
be before
|
|
.Ev PAGER
|
|
is used to read it.
|
|
If
|
|
.Va crt
|
|
is set without a value, then the height of the terminal screen
|
|
stored in the system is used to compute the threshold (see
|
|
.Xr stty 1 ) .
|
|
.It Ar el-completion-keys
|
|
A comma or space delimited list of keys to do
|
|
.Xr editline 3
|
|
completion.
|
|
For example
|
|
.Nm set el-completion-keys=^I,^D
|
|
will bind completion to both the tab and CTRL-D keys.
|
|
(Requires
|
|
.Xr editline 3
|
|
support.)
|
|
.It Ar el-editor
|
|
The line editing mode: must be
|
|
.Dq emacs
|
|
or
|
|
.Dq vi .
|
|
If unset, editing is not enabled.
|
|
(Requires
|
|
.Xr editline 3
|
|
support.)
|
|
.It Ar el-history-size
|
|
The number of lines of history to remember.
|
|
If unset, history is not enable.
|
|
(Requires
|
|
.Xr editline 3
|
|
support.)
|
|
.It Ar escape
|
|
If defined, the first character of this option gives the character to
|
|
use in the place of
|
|
.Sq ~
|
|
to denote escapes.
|
|
.It Ar folder
|
|
The name of the directory to use for storing folders of
|
|
messages.
|
|
If this name begins with a
|
|
.Sq / ,
|
|
.Nm
|
|
considers it to be an absolute pathname; otherwise, the
|
|
folder directory is found relative to your home directory.
|
|
.It Ar header-format
|
|
If set, use this format string when displaying headers in command
|
|
mode.
|
|
The format string supports the following conversions in addition to
|
|
those of
|
|
.Xr strftime 3 :
|
|
.Pp
|
|
.Bl -tag -width ".Ar \&%?key?" -compact
|
|
.It Ar \&%?key?
|
|
The header field with name
|
|
.Sq key .
|
|
Note: if key[0] is
|
|
.Sq \&- ,
|
|
ignore the
|
|
.Sq \&-
|
|
and extract the address
|
|
portion of the field (i.e.,
|
|
.Sq skin
|
|
the field).
|
|
.It Ar \&%?*string?
|
|
If the depth is
|
|
.Ar n
|
|
.Sq string
|
|
.Ar n
|
|
times.
|
|
This is intended to be used when displaying an
|
|
.Qq exposed thread .
|
|
.It Ar \&%?&string?
|
|
Like
|
|
.Ar \&%?*string? ,
|
|
but uses the depth relative to the current depth rather than the
|
|
absolute depth.
|
|
.It Ar \&%J
|
|
The number of header lines in the message.
|
|
.It Ar \&%K
|
|
The number of body lines in the message.
|
|
.It Ar \&%L
|
|
The total number of lines in the message.
|
|
.It Ar \&%N
|
|
The sender's full name (as in the "From:" or "Sender:" fields).
|
|
.It Ar \&%O
|
|
The message size.
|
|
.It Ar \&%P
|
|
The current
|
|
.Qq dot
|
|
.Pq Sq \*[Gt]
|
|
messsage.
|
|
.It Ar \&%Q
|
|
The message status flag.
|
|
.It Ar \&%Z
|
|
The time zone name (if it exists).
|
|
.It Ar \&%f
|
|
The email address of sender.
|
|
.It Ar \&%i
|
|
The message number.
|
|
.It Ar \&%n
|
|
The sender's login name (taken from the address).
|
|
.It Ar \&%q
|
|
The subject.
|
|
.It Ar \&%t
|
|
The total number of messages.
|
|
.It Ar \&%z
|
|
The GMT offset (if found).
|
|
.El
|
|
.Pp
|
|
If the format string begins with
|
|
.Qq \&%??
|
|
then the date will be extracted from the headline.
|
|
Otherwise it will be extracted from the
|
|
.Ar Date:
|
|
header falling back to the headline if that extraction fails.
|
|
For example, the default format is:
|
|
.Bd -literal -offset 0
|
|
set header-format \&"\&%??%P%Q%?* ?%3i \&%-21.20f \&%a \&%b \&%e \&%R \&%3K/%-5O \&\\"%q\\""
|
|
.Ed
|
|
.Pp
|
|
Note:
|
|
.Ar \&%n
|
|
and
|
|
.Ar \&%t
|
|
as used by
|
|
.Xr strftime 3
|
|
were redundant with \\t and \\n, respectively, so nothing is lost
|
|
using them here.
|
|
.It Ar indentpreamble
|
|
If set, this format string will be inserted before quoting a message
|
|
.Po Ic \&~m
|
|
or
|
|
.Ic \&~M
|
|
.Pc .
|
|
The format syntax is the same as for
|
|
.Ar header-format .
|
|
For example, the following:
|
|
.Bd -literal -offset 0
|
|
set indentpreamble=\&"On \&%b \&%e \&%T, \&%Y \&%z (%Z), \&%n (%.50N) wrote:\\n-- Subject: \&%.65q\\n"
|
|
.Ed
|
|
.Pp
|
|
would insert something like
|
|
.Bd -literal -offset 0
|
|
On Oct 27 11:00:07, 2006 -0400 (EDT), anon (Anon Ymous) wrote:
|
|
-- Subject: suggestions for mail(1)
|
|
.Ed
|
|
.Pp
|
|
before the quoted message.
|
|
.It Ar indentprefix
|
|
String used by the
|
|
.Dq ~m
|
|
tilde escape for indenting messages, in place of
|
|
the normal tab character
|
|
.Pq Sq ^I .
|
|
Be sure to quote the value if it contains
|
|
spaces or tabs.
|
|
.It Ar indentpostscript
|
|
If set, this format string will be inserted after quoting a message
|
|
.Po Ic \&~m
|
|
or
|
|
.Ic \&~M
|
|
.Pc .
|
|
The format syntax is the same as for
|
|
.Ar header-format .
|
|
For example, the following:
|
|
.Bd -literal -offset 0
|
|
set indentpostscript="-- End of excerpt from \&%.50N"
|
|
.Ed
|
|
.Pp
|
|
would insert something like
|
|
.Bd -literal -offset 0
|
|
-- End of excerpt from Anon Ymous
|
|
.Ed
|
|
.Pp
|
|
after the quoted message.
|
|
.It Ar mime-body-TYPE-SUBTYPE
|
|
MIME-hook for the body of a MIME block of
|
|
.Qq Content-Type: TYPE/SUBTYPE .
|
|
(See
|
|
.Sy MIME Enhancements
|
|
below.)
|
|
.It Ar mime-charset
|
|
Convert Content-type:
|
|
.Sq text
|
|
messages to this character set or
|
|
.Qq us-ascii
|
|
if the value is empty.
|
|
If unset, no character set conversion is done.
|
|
.It Ar mime-decode-header
|
|
If set, decode the headers along with the body when
|
|
.Ar mime-decode-message
|
|
is set.
|
|
The header decode follows the same rulse as the body (see
|
|
.Ar mime-decode-message ) .
|
|
.It Ar mime-decode-insert
|
|
When inserting
|
|
a message into the mail buffer
|
|
.Po Ic \&~f
|
|
or
|
|
.Ic \&~F
|
|
.Pc ,
|
|
the text inserted will be decoded according to the settings of the
|
|
.Ar mime-decode-message
|
|
and
|
|
.Ar mime-decode-header
|
|
variables.
|
|
.It Ar mime-decode-quote
|
|
When quoting
|
|
a message into the mail buffer
|
|
.Po Ic \&~m
|
|
or
|
|
.Ic \&~M
|
|
.Pc ,
|
|
the text inserted will be decoded according to the settings of the
|
|
.Ar mime-decode-message
|
|
and
|
|
.Ar mime-decode-header
|
|
variables.
|
|
.It Ar mime-detach-dir
|
|
The directory to detach files to if the
|
|
.Ar detach
|
|
command is given no arguments.
|
|
.It Ar mime-detach-batch
|
|
If set, the detach command does not prompt for anything
|
|
.Po unless
|
|
.Ar mime-detach-overwrite
|
|
is set to
|
|
.Qq ask
|
|
.Pc ,
|
|
overwriting target files depending on the setting of
|
|
.Ar mime-detach-overwrite .
|
|
.It Ar mime-detach-overwrite
|
|
This controls overwriting of existing files by the detach command.
|
|
If set to
|
|
.Qq ask
|
|
the user will be prompted before overwriting a file.
|
|
If set to
|
|
.Qq yes ,
|
|
or to the empty string, existing target files will be overwritten.
|
|
If set to
|
|
.Qq no ,
|
|
no target files will be overwritten.
|
|
.It Ar mime-encode-message
|
|
If set, encode the body of the message as required.
|
|
Typically, this is just an issue of whether "quoted-printable"
|
|
encoding is used or not.
|
|
If it has a value, then use it to determine the encoding type.
|
|
Allowed values are
|
|
.Qq 7bit ,
|
|
.Qq 8bit ,
|
|
.Qq binary ,
|
|
.Qq quoted-printable ,
|
|
or
|
|
.Qq base64 .
|
|
.It Ar mime-head-TYPE-SUBTYPE
|
|
MIME-hook for the header of a MIME block of
|
|
.Qq Content-Type: TYPE/SUBTYPE .
|
|
(See
|
|
.Sy MIME Enhancements
|
|
below.)
|
|
.It Ar mime-hook-TYPE-SUBTYPE
|
|
MIME-hook for MIME block of
|
|
.Qq Content-Type: TYPE/SUBTYPE .
|
|
(See
|
|
.Sy MIME Enhancements
|
|
below.)
|
|
.It Ev MBOX
|
|
The name of the
|
|
.Ar mbox
|
|
file.
|
|
It can be the name of a folder.
|
|
The default is
|
|
.Dq Li mbox
|
|
in the user's home directory.
|
|
.It Ar prompt
|
|
If defined, it specifies the prompt to use when in command mode.
|
|
Otherwise, the default
|
|
.Qq &\
|
|
is used.
|
|
The format syntax is the same as for
|
|
.Ar header-format .
|
|
.It Ar record
|
|
If defined, gives the pathname of the file used to record all outgoing
|
|
mail.
|
|
If not defined, then outgoing mail is not so saved.
|
|
.It Ar regex-search
|
|
If set, regular expression searches are used, instead of simple case
|
|
insensitive substring matches, when determining message lists by
|
|
searching sender names, subjects, or header fields (if
|
|
.Ar searchheaders
|
|
is defined); see the
|
|
.Dq Selecting Message
|
|
section.
|
|
The value of the variable is a space or comma delimited list of
|
|
options.
|
|
Valid options are "icase" to do case insensitive searches and
|
|
"expanded" to use extended (rather than basic) regular expressions.
|
|
.It Ar ReplyAsRecipient
|
|
This is used when replying to email (see the
|
|
.Ic reply
|
|
or
|
|
.Ic Reply
|
|
commands).
|
|
It is useful if you have multiple email addresses and wish to ensure
|
|
that replies respect them.
|
|
If set, grab the email address(es) from the
|
|
.Dq To:
|
|
field of the message being replied to.
|
|
If there is only one such address, and if it does not match any
|
|
address in the value of
|
|
.Ar ReplyAsRecipient
|
|
(a comma or space delimited list of addresses, possibly empty), then
|
|
use this address in the "From:" field of the reply.
|
|
This is accomplished by passing the address to
|
|
.Xr sendmail 1
|
|
with the
|
|
.Fl f
|
|
option.
|
|
Note: the sendmail options can be edited with the
|
|
.Ic \&~h
|
|
escape.
|
|
.It Ar toplines
|
|
If defined, gives the number of lines of a message to be printed out
|
|
with the
|
|
.Ic top
|
|
command; normally, the first five lines are printed.
|
|
.El
|
|
.Ss MIME Enhancements
|
|
A MIME message is (recursively) divided into a series of MIME parts
|
|
that can be thought of as sub-messages, each with a header and body.
|
|
When MIME support is enabled (by setting
|
|
.Ar mime-decode-message ) ,
|
|
.Nm
|
|
splits a message into a series of its smallest MIME parts and
|
|
processes those parts as if they were messages themselves, passing the
|
|
header and body through a pipeline of the form:
|
|
.Pp
|
|
.Dl mail -\*[Gt] MIME-decoder -\*[Gt] MIME-hook -\*[Gt] pager -\*[Gt] screen
|
|
.Pp
|
|
The
|
|
.Em MIME-decoder
|
|
decodes
|
|
.Qq base64
|
|
or
|
|
.Qq quoted-printable
|
|
encoding and is enabled according to the
|
|
.Qq Content-Transfer-Encoding:
|
|
of the part.
|
|
The
|
|
.Em MIME-hook
|
|
is an external program to further process the part (see below).
|
|
The
|
|
.Em pager
|
|
is the program that pages the message
|
|
(see
|
|
.Va PAGER ) .
|
|
Any of these intermediate pipe stages may be missing and/or different
|
|
for the head and body of each MIME part.
|
|
Certain
|
|
.Qq Content-Types:
|
|
may disable the entire pipeline (e.g.,
|
|
.Qq application/octet ) .
|
|
.Pp
|
|
The
|
|
.Em MIME-hook
|
|
stage is not present unless one of the following variables is set:
|
|
.Bd -literal -offset indent
|
|
mime-hook-TYPE-SUBTYPE - applies to the entire MIME part
|
|
mime-head-TYPE-SUBTYPE - applies to the header of the MIME part
|
|
mime-body-TYPE-SUBTYPE - applies to the body of the MIME part
|
|
.Ed
|
|
.Pp
|
|
where TYPE and SUBTYPE are the Content-Type type and subtype
|
|
(respectively) of the MIME part to which the hook applies.
|
|
If the
|
|
.Dq -SUBTYPE
|
|
is missing, any subtype is matched.
|
|
The value of these variables has the format:
|
|
.Bd -filled -offset indent
|
|
.Op Ar flags
|
|
.Ar command
|
|
.Ed
|
|
.Pp
|
|
where the
|
|
.Ar command
|
|
is expected to read from stdin and writes to stdout, and the possible
|
|
flags are
|
|
.Bl -tag -width Ds -offset indent
|
|
.It !
|
|
Execute
|
|
.Ar command
|
|
in a sub-shell rather than doing an
|
|
.Xr exec 3
|
|
(see
|
|
.Va Shell ) .
|
|
This is necessary for shell scripts.
|
|
.It +
|
|
Use this hook when selecting the part to display in a
|
|
.Qq multipart/alternative
|
|
block.
|
|
Multipart blocks contain
|
|
.Qq alternative
|
|
versions with the same information, in increasing order of preference
|
|
(and decoding complexity).
|
|
The last one the mail agent understands is the one to be displayed.
|
|
This is typically used for sending a message in both
|
|
.Qq plain text
|
|
and
|
|
.Qq html ,
|
|
but more complex subtypes are also possible.
|
|
.It -
|
|
Do not decode before executing
|
|
.Ar command .
|
|
.El
|
|
.Pp
|
|
If your
|
|
.Ar command
|
|
begins with one of these flags, precede it with a space to signal the
|
|
end of the flags.
|
|
.Pp
|
|
WARNING: automatically running a program is a potential security risk
|
|
if that program has bugs, so be careful what you run.
|
|
.Pp
|
|
.Em Examples :
|
|
View all "Content-Type: image/jpeg" parts with
|
|
.Xr xv 1
|
|
(assuming it is installed):
|
|
.Pp
|
|
.Dl set mime-body-image-jpeg="/usr/pkg/bin/xv -"
|
|
.Pp
|
|
Decode all "Content-Type: images/*" blocks with
|
|
.Xr uudeview 1
|
|
(assuming it is installed), placing the results in
|
|
.Pa /tmp :
|
|
.Pp
|
|
.Dl set mime-hook-image="-/usr/pkg/bin/uudeview -p /tmp -i -a +o -q -"
|
|
.Pp
|
|
Read all "Content-Type: text/html" parts using
|
|
.Xr lynx 1
|
|
(assuming it is installed) and add this support to
|
|
multipart/alternative blocks:
|
|
.Pp
|
|
.Bd -literal -offset indent
|
|
set mime-body-text-html="+/usr/pkg/bin/lynx -force_html -dump -stdin"
|
|
.Ed
|
|
.Pp
|
|
Generally, the incoming mail will have a better
|
|
.Qq plain/text
|
|
alternative.
|
|
.Sh ENVIRONMENT
|
|
.Nm
|
|
uses the
|
|
.Ev HOME ,
|
|
.Ev TMPDIR ,
|
|
and
|
|
.Ev USER
|
|
environment variables.
|
|
.Sh FILES
|
|
.Bl -tag -width /usr/share/misc/mail.*help -compact
|
|
.It Pa /var/mail/*
|
|
Post office.
|
|
.It ~/mbox
|
|
User's old mail.
|
|
.It ~/.mailrc
|
|
File giving initial mail commands.
|
|
This can be overridden by setting the
|
|
.Ev MAILRC
|
|
environment variable.
|
|
.It Pa /tmp/mail.R*
|
|
Temporary files.
|
|
.It Pa /usr/share/misc/mail.*help
|
|
Help files.
|
|
.It Pa /etc/mail.rc
|
|
System initialization file.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr fmt 1 ,
|
|
.Xr newaliases 1 ,
|
|
.Xr sendmail 1 ,
|
|
.Xr vacation 1 ,
|
|
.Xr aliases 5 ,
|
|
.Xr mailaddr 7
|
|
and
|
|
.Rs
|
|
.%T "The Mail Reference Manual"
|
|
.Re
|
|
.Sh HISTORY
|
|
A
|
|
.Nm
|
|
command
|
|
appeared in
|
|
.At v6 .
|
|
This man page is derived from
|
|
.%T "The Mail Reference Manual"
|
|
originally written by Kurt Shoens.
|
|
.Sh BUGS
|
|
There are some flags that are not documented here.
|
|
Most are not useful to the general user.
|
|
.Pp
|
|
Usually,
|
|
.Nm
|
|
is just a link to
|
|
.Nm Mail ,
|
|
which can be confusing.
|
|
.Pp
|
|
The name of the
|
|
.Ic alternates
|
|
list is incorrect English (it should be
|
|
.Dq alternatives ) ,
|
|
but is retained for compatibility.
|
|
.Pp
|
|
There must be sufficient space on $TMPDIR for various temporary files.
|
|
.Pp
|
|
If an unrecoverable character set conversion error occurs (during
|
|
display), the message is truncated and a warning is printed.
|
|
This seems to be rare, but probably the remainder of the message
|
|
should be printed without conversion.
|
|
.Pp
|
|
The internal sh-like parser is not terribly sh-like.
|