MAIL(1) | General Commands Manual | MAIL(1) |
mail
, mailx
,
Mail
— send and receive
mail
mail |
[-dEIinv ]
[-a header]
[-b bcc-addr]
[-c cc-addr]
[-r from-addr]
[-s subject]
[-- ] to-addr ... |
mail |
[-dEIiNnv ] -f
[file] |
mail |
[-dEIiNnv ] [-u
user] |
mail
is an intelligent mail processing
system which has a command syntax reminiscent of ed(1)
with lines replaced by messages.
The options are as follows:
-a
mail
adds by default to each outgoing mail, see
Character sets and MIME
below. You have to use quotes if the string contains spaces. This argument
may be specified more than once, the headers will then be
concatenated.-b
bcc-addr-c
cc-addr-d
mail
to output all sorts of information
useful for debugging mail
.-E
-f
mail
writes undeleted messages back to
this file.-I
mail
to run in interactive mode, even when
input is not a terminal. In particular, the special
~
command character, used when sending mail, is
only available interactively.-i
mail
on noisy phone lines.-N
-n
-r
from-addr-s
subject-s
flag is used as a subject; be careful to quote
subjects containing spaces).-u
user$ mail -f
/var/mail/user
except that locking is done.
-v
--
Note:
For security reasons the --
separator is
strongly recommended for scripts that need to send mails to addresses
obtained from untrusted sources (such as web forms).
At startup time, mail
will execute
commands in the system command file, /etc/mail.rc,
unless explicitly told not to by using the -n
option. Next, the commands in the user's personal command file
~/.mailrc are executed. mail
then examines its command line options to determine whether the user
requested a new message to be sent or existing messages in a mailbox to be
examined.
To send a message to one or more people,
mail
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 control-D (‘^D’) at the
beginning of a line. The section below,
Replying to or
originating mail, describes some features of
mail
available to help you compose your letter.
In normal usage, mail
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 set to
the first message (numbered 1) and can be printed using the
print
command (which can be abbreviated
p
). Moving among the messages is much like moving
between lines in ed(1); you may use
+
and -
to shift forwards
and backwards, or simply enter a message number to move directly.
After examining a message you can delete
(d
) or reply
(r
) to it. Deletion causes the
mail
program to forget about the message. This is
not irreversible; the message can be undeleted
(u
) by giving its number, or the
mail
session can be aborted by giving the
exit
(x
) command. Deleted
messages, however, will usually disappear, never to be seen again.
Commands such as print
and
delete
can be given a list of message numbers as
arguments to apply to a number of messages at once. Thus
delete 1 2
deletes messages 1 and 2, while
delete 1-5
deletes messages 1 through 5.
Messages may also be selected using one of the following categories:
Thus the command top
, which prints the
first few lines of a message, could be used in top *
to print the first few lines of all messages.
You can use the 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, mail
treats lines
beginning with the tilde (‘~’) character specially. For
instance, typing ~m
(alone on a line) will place a
copy of the current message into the response, right shifting it by a single
tab-stop (see the 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.)
You can end a mail
session with the
quit
(q
) command. Messages
which have been examined go to your mbox file unless
they have been deleted, in which case they are discarded. Unexamined
messages go back to the post office (see the -f
option above).
It is also possible to create personal distribution lists so that,
for instance, you can send mail to
“cohorts
” and have it go to a group of
people. Such lists can be defined by placing a line like
alias cohorts bill ozalp jkf mark
kridle@ucbcory
in the file .mailrc in your home
directory. The current list of such aliases can be displayed with the
alias
command in mail
.
System wide distribution lists can be created by editing
/etc/aliases, (see aliases(5));
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
reply
to the recipients. System wide 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 an MTA.
Recipient addresses (any of the “To”,
“Cc” or “Bcc” header fields) are subject to
expansion when the expandaddr
option is set.
An address may be expanded as follows:
|
’) character is treated as a
command to run. The command immediately following the
‘|
’ is executed with the message as
its standard input.+
’
character is treated as a folder./
’
character but no ‘!
’,
‘%
’, or
‘@
’ characters is also treated as a
folder.If the expandaddr
option is not set (the
default), no expansion is performed and the recipient is treated as a local
or network mail address.
Generally mail
does not handle neither
different character sets nor any other MIME feature. Especially it does not
perform any any conversions between character sets while displaying or
sending mails.
Starting from April 2017, however, as a Debian extension this
version of mail
adds a few MIME headers to every
outgoing mail in order to indicate that the mail is sent as 8-bit plain text
data that uses character set encoding detected from the current
locale(7) settings. The -a
command-line option can be used to override those headers, for example:
$ mail -a 'Content-Type: text/plain;
charset="ISO-8859-1"'
(Adapted from the “Mail Reference Manual”.)
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,
mail
types “No applicable messages”
and aborts the command.
-
=
?
!
alias
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.alternates
alt
) The alternates
command is useful if you have accounts on several machines. It can be used
to inform mail
that the listed addresses are
really you. When you reply
to messages,
mail
will not send a copy of the message to any of
the addresses listed on the alternates
list. If
the alternates
command is given with no argument,
the current set of alternate names is displayed.chdir
cd
or ch
) Changes the
user's working directory to that specified, if given. If no directory is
given, then changes to the user's login directory.copy
c
) The copy
command does
the same thing that save
does, except that it does
not mark the messages it is used on for deletion when you quit.delete
d
) Takes a list of messages as argument and marks
them all as deleted. Deleted messages will not be saved in
mbox, nor will they be available for most other
commands.dp
dt
) Deletes the current message and prints
the next message. If there is no next message,
mail
says “No more
messages.
”edit
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.exit
ex
or x
) Effects an
immediate return to the shell without modifying the user's system mailbox,
his mbox file, or his edit file in
-f
.file
fi
) The same as
folder
.folder
fo
) The 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. # means the previous file, % means your system mailbox, %user means
user's system mailbox, & means your mbox file,
and +folder means a file in your folder directory.folders
from
f
) Takes a list of messages and prints their
message headers.headers
h
) Lists the current windowful of headers. To
view the next or previous group of headers, see the
z
command.help
?
.hold
ho
, also preserve
) Takes
a message list and marks each message therein to be saved in the user's
system mailbox instead of in mbox. Does not override
the delete
command.ignore
Type
and Print
commands
can be used to print a message in its entirety, including ignored fields.
If ignore
is executed with no arguments, it lists
the current set of ignored fields.inc
list
l
) List the valid mail
commands.mail
m
) Takes as argument login names and distribution
group names and sends mail to those people.mbox
hold
option set.more
mo
) Takes a message list and invokes the pager on
that list.next
n
) (like +
or CR) Goes to
the next message in sequence and types it. With an argument list, types
the next matching message.preserve
pre
) A synonym for
hold
.Print
P
) Like print
but also
prints out ignored header fields. See also print
,
ignore
, and retain
.print
p
) Takes a message list and types out each
message on the user's terminal.quit
q
) Terminates the session, saving all undeleted,
unsaved messages in the user's mbox file in his
login directory, preserving all messages marked with
hold
or 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
“You have new mail
” is given. If
given while editing a mailbox file with the -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 exit
command.Reply
R
) Reply to originator. Does not reply to other
recipients of the original message.reply
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.respond
reply
.retain
Type
and Print
commands can be used to print a message in its entirety. If
retain
is executed with no arguments, it lists the
current set of retained fields.save
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.saveignore
saveignore
is to save
what ignore
is
to print
and type
. Header
fields thus marked are filtered out when saving a message by
save
or when automatically saving to
mbox.saveretain
saveretain
is to save
what retain
is
to print
and type
. Header
fields thus marked are the only ones saved with a message when saving by
save
or when automatically saving to
mbox. saveretain
overrides
saveignore
.set
se
) With no arguments, prints all variable
values. Otherwise, sets option. Arguments are of the form
option=value (no space before or after =) or
option. Quotation marks may be placed around any
part of the assignment statement to quote blanks or tabs, i.e.,
set indentprefix="->"
.shell
sh
) Invokes an interactive version of the
shell.size
source
source
command reads commands from a
file.top
toplines
and defaults to five.Type
T
) Identical to the Print
command.type
t
) A synonym for
print
.unalias
alias
commands
and discards the remembered groups of users. The group names no longer
have any significance.undelete
u
) Takes a message list and marks each message as
not being deleted.unread
U
) Takes a message list and marks each message as
not having been read.unset
set
.visual
v
) Takes a message list and invokes the display
editor on each message.write
w
) Similar to save
,
except that only
the message body (without the
header) is saved. Extremely useful for such tasks as sending and receiving
source program text over the message system.xit
x
) A synonym for
exit
.z
mail
presents message headers in windowfuls as
described under the headers
command. You can move
mail
's attention forward to the next window with
the z
command. Also, you can move to the previous
window by using z-
.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 “tilde escape”
is somewhat of a misnomer since the actual escape character can be set by
the option escape
.
~b
name
...~c
name
...~d
~e
~F
messages~f
, except all message headers are
included.
~f
messagesignore
or
retain
command) are not included.
~h
~M
messages~m
, except all message headers are
included.
~m
messagesignore
or
retain
command) are not included.
~p
~q
save
is set.~R
string~r
filename~<
filename~s
string~t
name
...~v
VISUAL
option) on the message collected so far. Usually, the alternate editor
will be a screen editor. After you quit the editor, you may resume
appending text to the end of your message.
~w
filename~x
save
is set.
~?
~!
command~|
commandcommand
to rejustify the message.
~:
mail-command~_
mail-command~~
string~.
A number of options can be set in the
.mailrc file to alter the behavior of
mail
, controlled via the set
and 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:
mail
to prompt you for the subject of each
message you send. If you respond with simply a newline, no subject field
will be sent.inc
command at each
prompt, except that the current message is not reset when new mail
arrives.delete
command to behave like
dp
; thus, after deleting a message, the next one
will be typed automatically.-d
on the command line and causes
mail
to output all sorts of information useful for
debugging mail
.mail
to interpret a period alone on a line as the
terminator of a message you are sending.mail
to expand message recipient addresses,
as explained in the section
Recipient address
specifications.mail
to use the specified sender address in
the “From:” field of the message header. A stripped down
version of the address is also used in the message envelope. If unset, the
message will not include an explicit sender address and a default value
will be added by the MTA, typically “user@host”. This value
can be overridden by specifying the -r
flag on the
command line.mail
refuse to accept a control-D as the end of a message.
ignoreeof also applies to
mail
command mode.mail
to truncate your
system mailbox instead of deleting it when it's empty.save
command are not
normally saved in mbox at quit time. Use this option
to retain those messages.-N
flag on the command line.mail
copies the partial letter to the
file dead.letter in your home directory. Setting
the binary option nosave prevents this.reply
and
Reply
commands.-v
flag on the command line. When
mail
runs in verbose mode, the actual delivery of
messages is displayed on the user's terminal.EDITOR
edit
command and ~e
escape. If not defined,
/usr/bin/ex is used.LISTER
folders
command. Default is
/bin/ls.MBOX
mbox
” in the
user's home directory.PAGER
more
command
or when the crt variable is set. The default
paginator more(1) is used if this option is not
defined.REPLYTO
SHELL
!
command and
the ~!
escape. A default shell is used if this
option is not defined.VISUAL
visual
command and ~v
escape. If not defined,
/usr/bin/vi is used.PAGER
is used to read it. If crt is set without a value,
then the height of the terminal screen stored in the system is used to
compute the threshold (see stty(1))./
’,
mail
considers it to be an absolute pathname;
otherwise, the folder directory is found relative to your home
directory.~m
tilde escape for indenting
messages, in place of the normal tab character (‘^I’). Be
sure to quote the value if it contains spaces or tabs.z
.top
command; normally, the first five lines
are printed.mail
utilizes the
HOME
, LOGNAME
,
USER
, SHELL
,
DEAD
, PAGER
,
LISTER
, EDITOR
,
VISUAL
, REPLYTO
,
MAIL
, MAILRC
, and
MBOX
environment variables.
If the MAIL
environment variable is set,
its value is used as the path to the user's mail spool.
MAIL
environment variable)MAILRC
environment variableThe mail
utility exits 0 on
success, and >0 if an error occurs.
fmt(1), newaliases(1), vacation(1), aliases(5), mail.local(8), newaliases(8), sendmail(8), smtpd(8)
The mailx
utility is compliant with the
IEEE Std 1003.1-2008 (“POSIX.1”)
specification.
The flags [-iNnu
] are marked by
IEEE Std 1003.1-2008 (“POSIX.1”) as
being optional.
The flags [-eFH
] are marked by
IEEE Std 1003.1-2008 (“POSIX.1”) as
being optional, and are not supported by this implementation of
mailx
.
The flags [-abcdEIrv
] are extensions to
the specification.
A mail
command appeared in
Version 3 AT&T UNIX. This man page is
derived from the Mail Reference Manual originally
written by Kurt Shoens.
Usually, Mail
and
mailx
are just links to
mail
, which can be confusing.
March 16, 2018 | Debian |