2316 lines
56 KiB
Groff
2316 lines
56 KiB
Groff
.\" $NetBSD: mail.1,v 1.57 2010/03/21 13:34:34 joerg 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 February 18, 2009
|
|
.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 r Ar rcfile
|
|
.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.
|
|
.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
|
|
.Ql \&:
|
|
and be followed by one or more of the characters described in the
|
|
.Sx Specifying messages
|
|
section below.
|
|
E.g.,
|
|
.Do
|
|
.Nm
|
|
.Fl H Ns :n
|
|
.Dc
|
|
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
|
|
.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 r
|
|
Specify an alternate user rcfile to load.
|
|
This overrides the value specified in the environment variable
|
|
.Ev MAILRC
|
|
which in turn overrides the default
|
|
.Pa ~/.mailrc
|
|
file.
|
|
.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 a
|
|
.Ql control-D
|
|
at the beginning of a line.
|
|
.Pp
|
|
Any flags following the list of recipients, will be passed, together
|
|
with their arguments, 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
|
|
.Ic p ) .
|
|
You can move among the messages much as you move between lines in
|
|
.Xr \&ed 1 ,
|
|
with the commands
|
|
.Ic \&+
|
|
and
|
|
.Ic \&\-
|
|
moving backwards and forwards, and simple numbers.
|
|
.Ss Disposing of mail
|
|
After examining a message you can
|
|
.Ic delete
|
|
.Pq Ic d
|
|
the message or
|
|
.Ic reply
|
|
.Pq 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 Ic u
|
|
by giving its number, or the
|
|
.Nm
|
|
session can be aborted by giving the
|
|
.Ic exit
|
|
.Pq Ic x
|
|
command.
|
|
Deleted messages will, however, usually disappear never to be seen again.
|
|
.Ss Specifying messages
|
|
Many commands (e.g.,
|
|
.Ic delete ,
|
|
.Ic from ,
|
|
and
|
|
.Ic print )
|
|
accept a list of messages as an argument.
|
|
Messages may be specified by their message number, by a range of
|
|
messages, or by a pattern string matching certain fields in the header
|
|
as described below.
|
|
These message
|
|
.Dq specs
|
|
may be combined by the usual binary boolean operations
|
|
.Ql \*[Am] ,
|
|
.Ql \&| ,
|
|
and
|
|
.Ql \&^ ,
|
|
which denote, respectively, a logical
|
|
.Dq and ,
|
|
.Dq or ,
|
|
and
|
|
.Dq xor .
|
|
Logical expressions may be grouped with parentheses
|
|
.Ql \&(
|
|
and
|
|
.Ql \&)
|
|
and
|
|
negated with
|
|
.Ql \&! .
|
|
If the binary operator is missing between two message specs, it is
|
|
assumed to be a
|
|
.Ql \&| .
|
|
This is for simplicity, backwards compatibility, and also to to
|
|
facilitate using the
|
|
.Ql \&|
|
|
symbol to denote a pipe.
|
|
(See
|
|
.Ar enable-pipes . )
|
|
.Pp
|
|
Besides the obvious (base10) message numbers, the characters
|
|
.Ql \&^ ,
|
|
.Ql \&- ,
|
|
.Ql \&. ,
|
|
.Ql \&+ ,
|
|
and
|
|
.Ql \&$
|
|
denote, respectively, the first message, the message before the
|
|
.Dq dot
|
|
.Pq the current message ,
|
|
the
|
|
.Dq dot
|
|
message, the message following the
|
|
.Dq dot ,
|
|
and the last message.
|
|
.Pp
|
|
A
|
|
.Dq message range
|
|
consists of two message numbers separated by a
|
|
.Ql \&- .
|
|
A
|
|
.Ql \&*
|
|
denotes all messages and is equivalent to
|
|
.Ql ^-$ .
|
|
.Pp
|
|
A pattern is a string (not beginning with any of the above special
|
|
characters).
|
|
If it does not begin with a
|
|
.Ql \&/ ,
|
|
it is compared with the senders address.
|
|
If it begins with a
|
|
.Ql \&/ ,
|
|
and
|
|
.Ar searchheaders
|
|
is not defined, the remainder of the string is compared with the
|
|
subject field.
|
|
(See
|
|
.Ar searchheaders
|
|
for searching other header fields or the message body.)
|
|
If
|
|
.Ar regex-search
|
|
is not defined, then the comparison is a simple case insensitive
|
|
substring match.
|
|
(See
|
|
.Ar regex-search
|
|
for regular expression matches.)
|
|
.Pp
|
|
A list of messages may be restricted by a
|
|
.Dq colon-modifier
|
|
string, i.e., a
|
|
.Ql \&:
|
|
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 messages.
|
|
Thus
|
|
.Dq Li from netbsd :n
|
|
would display the headers of all new messages with
|
|
.Ql 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
|
|
.Ql \&:
|
|
with no letters following indicates the colon-modifier from the
|
|
preceding command.
|
|
.Pp
|
|
For example:
|
|
.Bd -literal -offset indent
|
|
from 1 12 3-5
|
|
.Ed
|
|
.Pp
|
|
would display the headers from messages 1, 3, 4, 5, and 12.
|
|
.Bd -literal -offset indent
|
|
from anon \*[Am] ( /foo | /bar )
|
|
.Ed
|
|
.Pp
|
|
would display all headers that had
|
|
.Ql anon
|
|
in the sender's address and either
|
|
.Ql foo
|
|
or
|
|
.Ql bar
|
|
in the subject line.
|
|
.Pp
|
|
Generally, commands cannot select messages that are not displayed,
|
|
such as deleted or hidden messages, the exception being the
|
|
.Ic undelete
|
|
command.
|
|
.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
|
|
.Ic \&~
|
|
specially.
|
|
For instance, typing
|
|
.Ic \&~m
|
|
(alone on a line) will place a copy
|
|
of the current message into the response right shifting it by a tab stop
|
|
(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 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 system wide 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 \&!
|
|
Executes the shell
|
|
(see
|
|
.Xr sh 1
|
|
and
|
|
.Xr csh 1 )
|
|
command which follows.
|
|
.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 \&=
|
|
With no argument, it displays the current message number.
|
|
Otherwise, set the current message number to its first argument.
|
|
.It Ic \&?
|
|
Prints a brief summary of commands.
|
|
.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 Header
|
|
.Pq Ic H
|
|
Specify or show additional header fields.
|
|
This is intended for adding extra header fields like
|
|
.Dq Reply-To:
|
|
or
|
|
.Dq X-Organization:
|
|
to the header.
|
|
For example:
|
|
.Bd -literal -offset 0
|
|
Header X-Mailer: NetBSD mail(1) 9.1
|
|
.Ed
|
|
.Pp
|
|
would add the
|
|
.Dq X-Mailer: NetBSD mail(1) 9.1
|
|
line to the message header.
|
|
Without any arguments, the extra header fields are displayed.
|
|
With only a header name (including the
|
|
.Sq \&: ) ,
|
|
it will delete all extra header fields with that name.
|
|
Note: Although some syntax checking is done on the header line, care
|
|
should be taken to ensure that it complies with RFC 2821 and 2822.
|
|
Also, the extra header lines are not currently displayed by the
|
|
.Ic \&~h
|
|
tilde command when sending mail (use
|
|
.Ic \&~:Header
|
|
to see them).
|
|
.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 type ,
|
|
.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.
|
|
(See
|
|
.Ic reply . )
|
|
.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 bounce
|
|
Takes a list of messages and prompts for an address to bounce the
|
|
messages to.
|
|
If no message is specified, the current message is used.
|
|
All the original header fields are preserved except for the
|
|
.Ql Delivered-To ,
|
|
.Ql X-Original-To
|
|
and
|
|
.Ql Status
|
|
fields.
|
|
The new
|
|
.Ql To
|
|
field contains the bounce address(es) plus any addresses in the old
|
|
.Ql To
|
|
field minus the user's local address and any on the alternates list.
|
|
(See the
|
|
.Ic alternates
|
|
command.)
|
|
.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 deldups
|
|
Delete duplicate messages based on their
|
|
.Ql Message-Id
|
|
field, keeping the first one in the current sort order.
|
|
This can be useful with replies to a mailing list that are also CCed
|
|
to a subscriber.
|
|
(The same thing can also be accomplished with the threading and
|
|
tagging commands.)
|
|
.It Ic delete
|
|
.Pq Ic d
|
|
Takes a list of messages as an 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 as arguments,
|
|
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.
|
|
(See the
|
|
.Ar mime-detach-batch
|
|
and
|
|
.Ar mime-detach-overwrite
|
|
variables to change this behavior.)
|
|
Only MIME parts with an associated filename in the
|
|
.Ql Content-Type
|
|
or
|
|
.Ql 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
|
|
Go down one level in the thread.
|
|
If given a message number, it descends the thread below that message,
|
|
otherwise it descends from the current message (dot).
|
|
.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
|
|
Expose the thread structure so all messages appear in header listings.
|
|
(See
|
|
.Ar hide
|
|
for the inverse.)
|
|
The default header prompt will indent each header line one space for
|
|
each level in the threading.
|
|
The
|
|
.Dq Li "%?* ?"
|
|
format string does this.
|
|
.It Ic file
|
|
.Pq Ic fi
|
|
The same as
|
|
.Ic folder .
|
|
.It Ic flatten
|
|
For each message number in the argument list, or the current thread if
|
|
no message list is given, promote all exposed children to the same
|
|
thread level.
|
|
.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.
|
|
.Ql #
|
|
means the previous file,
|
|
.Ql %
|
|
means your system mailbox,
|
|
.Ql %user
|
|
means user's system mailbox,
|
|
.Ql \*[Am]
|
|
means your
|
|
.Ar mbox
|
|
file, and
|
|
.Ql +file
|
|
means a file in your folder directory.
|
|
.It Ic forward
|
|
Takes a list of messages and prompts for an address (or addresses) to
|
|
forward each message to.
|
|
If no message list is specified, the current message is used.
|
|
The mail editor is run for each message allowing the user to enter a
|
|
message that will precede the forward message.
|
|
The message is sent as a multipart/mixed MIME encoded message.
|
|
All header fields except the
|
|
.Ql Status
|
|
field are included.
|
|
.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
|
|
Collapse the threads so that only the head of each thread is shown,
|
|
hiding the subthreads.
|
|
(See
|
|
.Ar expose
|
|
for the inverse.)
|
|
.It Ic hidetags
|
|
Restrict the display to untagged messages.
|
|
In threaded mode, subthreads that connect directly to an untagged
|
|
message are also displayed, including tagged messages in the
|
|
connecting chain.
|
|
.It Ic hidethreads
|
|
The same as
|
|
.Ar hide .
|
|
.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
|
|
.Ql receiving ,
|
|
.Ql sending ,
|
|
and
|
|
.Ql headersonly .
|
|
For example, one use might be something like:
|
|
.Bd -literal -offset 0
|
|
if headersonly
|
|
set header-format="%P%Q%3i %-21.20f %m/%d %R %3K \e"%q\e""
|
|
else
|
|
set header-format="%P%Q%?\*[Am] ?%3i %-21.20f %a %b %e %R %3K/%-5O \e"%q\e""
|
|
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.
|
|
If
|
|
.Ic ignore
|
|
is executed with no arguments, it lists the current set of
|
|
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.
|
|
.It Ic invtags
|
|
Invert the tags on a list of messages or the current message if none
|
|
are given.
|
|
Note: this will not affect any currently deleted messages.
|
|
.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.
|
|
(See the
|
|
.Ic Reply
|
|
command and the
|
|
.Ar Replyall
|
|
variable.)
|
|
.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.
|
|
.Ic Retain
|
|
overrides
|
|
.Ic save .
|
|
.It Ic reverse
|
|
Reverse the order of the messages in at the current thread level.
|
|
This is completely equivalent to
|
|
.Dq Li sort \&! .
|
|
.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"
|
|
Inside single quotes everything is parsed literally, including
|
|
.Sq \e
|
|
escaped characters.
|
|
Inside double quotes
|
|
.Sq \e
|
|
character escapes are interpreted.
|
|
This is an extension as POSIX specifies that
|
|
.Sq \e
|
|
should be left uninterpreted for both single and double quoted strings.
|
|
.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 showtags
|
|
Display all current messages, tagged or not, unless they are in a
|
|
hidden thread.
|
|
.It Ic showthreads
|
|
The same as
|
|
.Ar expose .
|
|
.It Ic size
|
|
Takes a message list and prints out the size in characters of each
|
|
message.
|
|
.It Ic smopts
|
|
Takes an
|
|
.Dq address-spec
|
|
followed by the sendmail flags that should be used when sending mail
|
|
to an address that matches that
|
|
.Dq address-spec .
|
|
If no sendmail flags are specified, then list the sendmail flags in
|
|
effect for the
|
|
.Dq address-spec .
|
|
If the
|
|
.Dq address-spec
|
|
is also omitted, then list all
|
|
.Ic smopts
|
|
settings.
|
|
The
|
|
.Dq address-spec
|
|
may be an alias, address, domain (beginning with a
|
|
.Ql \&@ ) ,
|
|
or subdomain
|
|
(beginning with a
|
|
.Ql \&. ) .
|
|
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
|
|
.Ql mylist
|
|
alias expands to would have the sender's name set to
|
|
.Ql List Maintainer .
|
|
Mail sent to anyone at NetBSD.org other than
|
|
.Ql friend@NetBSD.org
|
|
would look like it was sent from
|
|
.Ql anon@somewhere.net
|
|
by
|
|
.Ql Anon Ymous .
|
|
Mail sent to
|
|
.Ql friend@NetBSD.org
|
|
would not have any sendmail flags set (unless they are set by the
|
|
.Ic \&~h
|
|
escape).
|
|
.It Ic sort
|
|
With no argument,
|
|
.Ic sort
|
|
does nothing.
|
|
Otherwise it will sort based on the header field name given as an
|
|
argument.
|
|
A few names are special:
|
|
.Bd -literal -offset indent
|
|
blines sort based on the number of body lines.
|
|
hlines sort on the number of header lines.
|
|
tlines sort on the total number of lines.
|
|
size sort on the message size
|
|
sday sent day (ignores the hour/min/sec)
|
|
rday received day (ignores the hour/min/sec)
|
|
sdate sent date
|
|
rdate received date
|
|
subject sort on the subject, ignoring "Re:" prefixes.
|
|
from sort on the sender's address.
|
|
.Ed
|
|
.Pp
|
|
The check for these special names is case sensitive while the header
|
|
field name comparisons are case insensitive, so changing the case on
|
|
any of these special names will sort based on the header field
|
|
ignoring the special keyword.
|
|
.Pp
|
|
There are also three modifiers which may precede the argument:
|
|
.Bd -literal -offset indent
|
|
\&! reverse the sorting order.
|
|
\&^ case insensitive sorting.
|
|
\&- skin the field (removing RFC 822 comments and
|
|
keep the address).
|
|
.Ed
|
|
.Pp
|
|
The same keywords and modifiers also apply to threading.
|
|
(See the
|
|
.Ic thread
|
|
command.)
|
|
.Pp
|
|
Note:
|
|
.Ic sort
|
|
has no effect on the threading, sorting only on the heads
|
|
of the threads if threads exist.
|
|
.Pp
|
|
.It Ic source
|
|
The
|
|
.Ic source
|
|
command reads commands from a file.
|
|
.It Ic tag
|
|
Tag a list of messages or the current message if none are given.
|
|
In hidden thread mode, the entire thread will be tagged, i.e.,
|
|
.Ic tag
|
|
is recursive
|
|
.It Ic tagbelow
|
|
Tag all messages of the current thread below the level of the
|
|
current message (dot) or the supplied message number if given.
|
|
.It Ic thread
|
|
By default this threads the current message list based on the
|
|
.Ql In-Reply-To
|
|
and
|
|
.Ql References
|
|
header fields (intended for this purpose by RFC 2822).
|
|
If given an argument, it will thread on that header field name
|
|
instead.
|
|
The same field keywords and modifiers recognized by the sort command
|
|
are also recognized here.
|
|
Display of the threads is controlled by the
|
|
.Ic hide
|
|
and
|
|
.Ic expose
|
|
commands; navigation of threads is done with the
|
|
.Ic down ,
|
|
.Ic up ,
|
|
and
|
|
.Ic tset
|
|
commands.
|
|
.Pp
|
|
If
|
|
.Ar recursive-commands
|
|
is defined, many commands (e.g.,
|
|
.Ic print )
|
|
act on the entire thread (when it is hidden), otherwise they act on
|
|
just the current message.
|
|
.Pp
|
|
Note: the
|
|
.Ql In-Reply-To
|
|
and
|
|
.Ql Reference
|
|
header fields are necessary to do threading correctly.
|
|
This version of
|
|
.Nm
|
|
now emits these header fields when replying.
|
|
.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 tset
|
|
Set the current thread (thread set) so that the supplied message
|
|
number (or the current message if no argument is given) is at the top
|
|
level of the current thread.
|
|
.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 Ic unsmopts
|
|
Takes a list of
|
|
.Dq address-specs
|
|
defined by
|
|
.Ic smopts
|
|
commands and discards them from the smopts database.
|
|
.It Ic untag
|
|
Untag a list of messages or the current message if none are given.
|
|
Like the
|
|
.Ic tag
|
|
command,
|
|
.Ic untag
|
|
is recursive on hidden threads.
|
|
.It Ic unthread
|
|
Undo all threading and sorting, restoring the original display order,
|
|
i.e., the order in the mail file.
|
|
.It Ic up
|
|
Go up one level in the thread.
|
|
This also takes an optional (positive) argument to go up multiple
|
|
levels in the thread.
|
|
.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
|
|
.Dq 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 \&~
|
|
Identical to
|
|
.Ic \&~f ,
|
|
except all message headers are included.
|
|
.It Ic \&~h
|
|
Edit the message header fields, and the options passed to sendmail (the
|
|
.Li Smopts ) ,
|
|
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
|
|
.Dq Pa 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
|
|
.Ql \&! ,
|
|
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 body 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 Va crt
|
|
If
|
|
.Va crt
|
|
is set, then the
|
|
.Ev PAGER
|
|
will be used for the
|
|
.Ic print ,
|
|
.Ic Print ,
|
|
.Ic type ,
|
|
and
|
|
.Ic Type
|
|
commands.
|
|
Normally these commands do not invoke the pager.
|
|
(See
|
|
.Va page-also . )
|
|
.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 enable-pipes
|
|
If defined, the output of most commands can be piped into a shell
|
|
command or redirected to a file.
|
|
The pipe/redirection is signaled by the first occurrence of a
|
|
.Ql |
|
|
or
|
|
.Ql \*[Gt]
|
|
character that is not in a quoted string or in a parenthetical
|
|
group.
|
|
This character terminates the mail command line and the remaining
|
|
string is passed to the shell.
|
|
For example, assuming normal headers, something like
|
|
.Bd -literal -offset indent
|
|
from john@ | fgrep -i ' "Re:' | wc
|
|
.Ed
|
|
.Pp
|
|
could be used to count how may replies were made by senders with
|
|
.Ql john@
|
|
in their address and
|
|
.Bd -literal -offset indent
|
|
from john@ \*[Gt]\*[Gt] /tmp/john
|
|
.Ed
|
|
.Pp
|
|
would append all the headers from such senders to /tmp/john.
|
|
.Pp
|
|
Note: With piping enabled, you cannot use the
|
|
.Ql \&|
|
|
as a logical
|
|
.Dq or
|
|
operator outside of a parenthetical group.
|
|
This should not be a problem as it is the default logical operator.
|
|
(See the
|
|
.Sx Specifying messages
|
|
section.)
|
|
.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 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-header
|
|
If set, decode the headers along with the body when
|
|
.Ar mime-decode-message
|
|
is set.
|
|
The header decode follows the same rules 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-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 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-batch
|
|
If set, the detach command does not prompt for anything
|
|
.Po unless
|
|
.Ar mime-detach-overwrite
|
|
is set to
|
|
.Ql ask
|
|
.Pc ,
|
|
overwriting target files depending on the setting of
|
|
.Ar mime-detach-overwrite .
|
|
.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 page-also
|
|
A comma or whitespace delimited list of additional commands to page.
|
|
The comparisons are case insensitive, so if
|
|
.Ic view
|
|
is in the list, both
|
|
.Ic view
|
|
and
|
|
.Ic View
|
|
will page.
|
|
.It Ar pager-off
|
|
If set, disable the pager on all commands.
|
|
.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
|
|
.Dq 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
|
|
tag untag invtags
|
|
.Ed
|
|
.Pp
|
|
If not defined, or if the threads are
|
|
.Dq 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
|
|
.Ql Subject
|
|
header field.
|
|
If
|
|
.Dq y
|
|
is omitted, only those messages that contain the field
|
|
.Dq x
|
|
will be matched.
|
|
The three forms
|
|
.Dq /from:y ,
|
|
.Dq /to:y ,
|
|
and
|
|
.Dq /body: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
|
|
.Ql To ,
|
|
.Ql Cc ,
|
|
or
|
|
.Ql Bcc
|
|
header fields.
|
|
The third will match all messages which contain the substring
|
|
.Dq y
|
|
in a line of the message body.
|
|
The check for
|
|
.Dq from ,
|
|
.Dq to ,
|
|
and
|
|
.Dq body
|
|
is case sensitive, so that
|
|
.Dq /From:y
|
|
and
|
|
.Dq /To:y
|
|
can be used to search the
|
|
.Ql From
|
|
and
|
|
.Ql To
|
|
fields, respectively.
|
|
(See also
|
|
.Ar "regex-search" . )
|
|
.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 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
|
|
.Ql emacs
|
|
or
|
|
.Ql 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
|
|
.Ic \&~
|
|
to denote escapes.
|
|
.It Ar folder
|
|
The name of the directory to use for storing folders of
|
|
messages.
|
|
If this name begins with a
|
|
.Ql / ,
|
|
.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
|
|
.Ql key .
|
|
Note: if key[0] is
|
|
.Ql \&- ,
|
|
ignore the
|
|
.Ql \&-
|
|
and extract the address
|
|
portion of the field (i.e.,
|
|
.Dq skin
|
|
the field).
|
|
.It Ar \&%?*string?
|
|
If the depth is
|
|
.Ar n ,
|
|
substitute
|
|
.Ql string
|
|
.Ar n
|
|
times.
|
|
This is intended to be used when displaying an
|
|
.Dq exposed thread .
|
|
.It Ar \&%?\*[Am]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
|
|
.Ql From
|
|
or
|
|
.Ql Sender
|
|
fields).
|
|
.It Ar \&%O
|
|
The message size.
|
|
.It Ar \&%P
|
|
The current
|
|
.Dq dot
|
|
.Pq Sq \*[Gt]
|
|
message.
|
|
.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
|
|
.Ql "\&%??"
|
|
then the date will be extracted from the headline.
|
|
Otherwise it will be extracted from the
|
|
.Ql 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 \&\e"%q\e""
|
|
.Ed
|
|
.Pp
|
|
Note 1: The message status flag
|
|
.Ql \&%Q
|
|
will display the single character
|
|
.Ql \&+
|
|
for the parent of a subthread.
|
|
This will be overwritten by a
|
|
.Ql T ,
|
|
.Ql E ,
|
|
.Ql \&* ,
|
|
.Ql P ,
|
|
.Ql U ,
|
|
.Ql N ,
|
|
.Ql M
|
|
indicating, respectively, a tagged, modified, saved, preserved,
|
|
unread, new, or modified message, in that order with the last matching
|
|
condition being the one displayed.
|
|
In the case of hidden threads, the entire subthread is searched and
|
|
the letters above will be displayed in lower case if the property is
|
|
that of a hidden child with the case
|
|
.Ql \&*
|
|
being displayed as
|
|
.Ql \*[Am] .
|
|
.Pp
|
|
Note 2:
|
|
.Ar \&%n
|
|
and
|
|
.Ar \&%t
|
|
as used by
|
|
.Xr strftime 3
|
|
were redundant with \et and \en, respectively, so nothing is lost
|
|
using them here.
|
|
.It Ar ignoreeof
|
|
An option related to
|
|
.Ar dot
|
|
is
|
|
.Ar ignoreeof
|
|
which makes
|
|
.Nm
|
|
refuse to accept a
|
|
.Ql control-D
|
|
as the end of a message.
|
|
If given a numeric argument
|
|
.Ar n ,
|
|
a
|
|
.Ql control-D
|
|
will be accepted after
|
|
.Ar n
|
|
tries.
|
|
.Ar Ignoreeof
|
|
also applies to
|
|
.Nm
|
|
command mode.
|
|
.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:\en-- Subject: \&%.65q\en"
|
|
.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
|
|
.Ic ~m
|
|
and
|
|
.Ic ~M
|
|
tilde escapes 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
|
|
.Ql "Content-Type: TYPE/SUBTYPE" .
|
|
(See
|
|
.Sy MIME Enhancements
|
|
below.)
|
|
.It Ar mime-charset
|
|
Convert
|
|
.Ql "Content-type: text"
|
|
messages to this character set or
|
|
.Ql us-ascii
|
|
if the value is empty.
|
|
If unset, no character set conversion is done.
|
|
.It Ar mime-detach-dir
|
|
The directory to detach files to if the
|
|
.Ar detach
|
|
command is given no arguments.
|
|
(See
|
|
.Ar detach . )
|
|
.It Ar mime-detach-overwrite
|
|
This controls overwriting of existing files by the detach command.
|
|
If set to
|
|
.Ql ask
|
|
the user will be prompted before overwriting a file.
|
|
If set to
|
|
.Ql yes ,
|
|
or to the empty string, existing target files will be overwritten.
|
|
If set to
|
|
.Ql 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
|
|
.Ql quoted-printable
|
|
encoding is used or not.
|
|
If it has a value, then use it to determine the encoding type.
|
|
Allowed values are
|
|
.Ql 7bit ,
|
|
.Ql 8bit ,
|
|
.Ql binary ,
|
|
.Ql quoted-printable ,
|
|
or
|
|
.Ql base64 .
|
|
.It Ar mime-head-TYPE-SUBTYPE
|
|
MIME-hook for the header of a MIME block of
|
|
.Ql "Content-Type: TYPE/SUBTYPE" .
|
|
(See
|
|
.Sy MIME Enhancements
|
|
below.)
|
|
.It Ar mime-hook-TYPE-SUBTYPE
|
|
MIME-hook for MIME block of
|
|
.Ql "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
|
|
.Ql \*[Am]
|
|
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
|
|
.Sx Specifying message
|
|
section.
|
|
The value of the variable is a space or comma delimited list of
|
|
options.
|
|
Valid options are
|
|
.Ql icase
|
|
to do case insensitive searches,
|
|
.Ql extended
|
|
to use extended (rather than basic) regular expressions, and
|
|
.Ql nospec
|
|
to turn off all special character meanings and do literal string
|
|
searches.
|
|
Note that
|
|
.Ql extended
|
|
and
|
|
.Ql nospec
|
|
are not compatible (see
|
|
.Xr regcomp 3 ) .
|
|
.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
|
|
.Ql 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
|
|
.Ql 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.
|
|
(See also the
|
|
.Ic smopts
|
|
command.)
|
|
.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
|
|
.Ql base64
|
|
or
|
|
.Ql quoted-printable
|
|
encoding and is enabled according to the
|
|
.Ql 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
|
|
.Ev PAGER ) .
|
|
Any of these intermediate pipe stages may be missing and/or different
|
|
for the head and body of each MIME part.
|
|
Certain
|
|
.Ql Content-Types
|
|
may disable the entire pipeline (e.g.,
|
|
.Ql 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
|
|
.Ql 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 write 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 ) .
|
|
.It +
|
|
Use this hook when selecting the part to display in a
|
|
.Ql multipart/alternative
|
|
block.
|
|
Multipart blocks contain
|
|
.Dq 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
|
|
.Dq plain text
|
|
and
|
|
.Dq 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
|
|
.Ql "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
|
|
.Ql "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
|
|
.Ql "Content-Type: text/html"
|
|
parts using
|
|
.Xr lynx 1
|
|
(assuming it is installed) and add this support to
|
|
.Ql multipart/alternative
|
|
blocks:
|
|
.Pp
|
|
.Bd -literal -offset indent
|
|
set mime-body-text-html="+/usr/pkg/bin/lynx -force_html -dump -stdin"
|
|
.Ed
|
|
.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 and commands 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.
|
|
.Pp
|
|
Selecting messages by their content (i.e., with
|
|
.Ql /body: )
|
|
is rather slow.
|