1 .\" Copyright (c) 1980, 1990, 1993
2 .\" The Regents of the University of California. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\" may be used to endorse or promote products derived from this software
14 .\" without specific prior written permission.
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" @(#)mail.1 8.8 (Berkeley) 4/28/95
29 .\" $FreeBSD: src/usr.bin/mail/mail.1,v 1.18.2.12 2003/01/06 05:46:03 mikeh Exp $
30 .\" $DragonFly: src/usr.bin/mail/mail.1,v 1.4 2007/05/17 08:19:02 swildner Exp $
39 .Nd send and receive mail
48 .Op Fl Ar sendmail-option ...
66 utility is an intelligent mail processing system, which has
67 a command syntax reminiscent of
69 with lines replaced by messages.
71 The following options are available:
72 .Bl -tag -width indent
76 delivery are displayed on the user's terminal.
78 Test for the presence of mail in the (by default, system)
80 An exit status of 0 is returned if
81 it has mail; otherwise an exit status of 1 is returned.
83 Write a header summary only.
85 Do not send messages with an empty body.
86 This is useful for piping errors from
90 Ignore tty interrupt signals.
92 particularly useful when using
98 to run in interactive mode even when
99 input is not a terminal.
103 character when sending mail is only active in interactive mode.
105 Inhibit reading the system-wide
109 Inhibit the initial display of message headers
110 when reading mail or editing a mail folder.
115 (Only the first argument after the
117 flag is used as a subject; be careful to quote subjects
120 Send carbon copies to
125 argument should be a comma-separated list of names.
127 Send blind carbon copies to
132 argument should be a comma-separated list of names.
134 Read in the contents of your
136 (or the specified file)
137 for processing; when you
140 writes undeleted messages back to this file.
142 Record the message in a file named after the first recipient.
143 The name is the login-name portion of the
144 address found first on the
146 line in the mail header.
153 .Dl "mail -f /var/mail/user"
155 .Ss "Startup Actions"
158 will execute commands in the system command files
159 .Pa /usr/share/misc/mail.rc ,
160 .Pa /usr/local/etc/mail.rc
163 in order, unless explicitly told not to by the use of the
166 Next, the commands in the user's personal command file
171 utility then examines its command line options to determine whether a
172 new message is to be sent, or whether an existing mailbox is to
175 To send a message to one or more people,
177 can be invoked with arguments which are the names of people to
178 whom the mail will be sent.
179 You are then expected to type in
180 your message, followed
183 at the beginning of a line.
185 .Sx "Replying To or Originating Mail" ,
186 describes some features of
188 available to help you compose your letter.
192 is given no arguments and checks your mail out of the
194 prints out a one line header of each message found.
195 The current message is initially the first message (numbered 1)
196 and can be printed using the
198 command (which can be abbreviated
200 You can move among the messages much as you move between lines in
206 moving backwards and forwards, and
208 .Ss "Disposing of Mail"
209 After examining a message you can
218 program to forget about the message.
219 This is not irreversible; the message can be
222 by giving its number, or the
224 session can be aborted by giving the
228 Deleted messages will, however, usually disappear never to be seen again.
229 .Ss "Specifying Messages"
234 can be given a list of message numbers as arguments to apply
235 to a number of messages at once.
238 deletes messages 1 and 2, while
240 deletes messages 1 through 5.
243 addresses all messages, and
246 the last message; thus the command
248 which prints the first few lines of a message could be used in
250 to print the first few lines of all messages.
251 .Ss "Replying To or Originating Mail"
255 set up a response to a message, sending it back to the
256 person who it was from.
257 Text you then type in, up to an end-of-file,
258 defines the contents of the message.
259 While you are composing a message,
261 treats lines beginning with the character
266 (alone on a line) will place a copy
267 of the current message into the response right shifting it by a tabstop
271 Other escapes will set up subject fields, add and delete recipients
272 to the message and allow you to escape to an editor to revise the
273 message or to a shell to run some commands.
275 are given in the summary below.)
276 .Ss "Ending a Mail Processing Session"
283 Messages which have been examined go to your
285 file unless they have been deleted in which case they are discarded.
286 Unexamined messages go back to the post office.
290 .Ss "Personal and System Wide Distribution Lists"
291 It is also possible to create a personal distribution lists so that,
292 for instance, you can send mail to
295 to a group of people.
296 Such lists can be defined by placing a line like
298 .Dl "alias cohorts bill ozalp jkf mark kridle@ucbcory"
302 in your home directory.
303 The current list of such aliases can be displayed with the
307 System wide distribution lists can be created by editing
308 .Pa /etc/mail/aliases ,
313 these are kept in a different syntax.
314 In mail you send, personal aliases will be expanded in mail sent
315 to others so that they will be able to
320 are not expanded when the mail is sent,
321 but any reply returned to the machine will have the system wide
322 alias expanded as all mail goes through
324 .Ss "Network Mail (ARPA, UUCP, Berknet)"
328 utility has a number of options which can be set in the
330 file to alter its behavior; thus
335 (These options are summarized below.)
338 .%T "Mail Reference Manual" . )
340 Each command is typed on a line by itself, and may take arguments
341 following the command word.
342 The command need not be typed in its
343 entirety \(em the first command which matches the typed prefix is used.
344 For commands which take message lists as arguments, if no message
345 list is given, then the next message forward which satisfies the
346 command's requirements is used.
347 If there are no messages forward of
348 the current message, the search proceeds backwards, and if there are no
349 good messages at all,
352 .Dq Li "No applicable messages"
355 .Bl -tag -width indent
357 Print out the preceding message.
363 previous message and prints it.
365 ignore the remainder of the line as a comment.
367 Prints a brief summary of commands.
374 command which follows.
379 but also prints out ignored header fields.
387 Does not reply to other
388 recipients of the original message.
396 With no arguments, prints out all currently-defined aliases.
398 argument, prints out that alias.
399 With more than one argument, creates
400 a new alias or changes an old one.
405 command is useful if you have accounts on several machines.
406 It can be used to inform
408 that the listed addresses are really you.
413 will not send a copy of the message to any of the addresses
419 command is given with no argument, the current set of alternative
423 Changes the user's working directory to that specified, if given.
425 no directory is given, then changes to the user's login directory.
430 command does the same thing that
432 does, except that it does not mark the messages it
433 is used on for deletion when you
437 Takes a list of messages as argument and marks them all as deleted.
438 Deleted messages will not be saved in
440 nor will they be available for most other commands.
444 Deletes the current message and prints the next message.
445 If there is no next message,
451 Takes a list of messages and points the text editor at each one in
453 On return from the editor, the message is read back in.
458 Effects an immediate return to the shell without
459 modifying the user's system mailbox, his
461 file, or his edit file in
468 List the names of the folders in your folder directory.
473 command switches to a new mail file or folder.
475 arguments, it tells you which file you are currently reading.
476 If you give it an argument, it will write out changes (such
477 as deletions) you have made in the current file and read in
479 Some special conventions are recognized for
482 means the previous file,
484 means your system mailbox,
486 means user's system mailbox,
491 .Dq Li + Ns Ar folder
492 means a file in your folder
496 Takes a list of messages and prints their message headers.
499 Lists the current range of headers, which is an 18-message group.
503 argument is given, then the next 18-message group is printed, and if
506 argument is given, the previous 18-message group is printed.
514 Takes a message list and marks each
515 message therein to be saved in the
516 user's system mailbox instead of in
518 Does not override the
522 Add the list of header fields named to the
524 Header fields in the ignore list are not printed
525 on your terminal when you print a message.
527 command is very handy for suppression of certain machine-generated
533 commands can be used to print a message in its entirety, including
537 is executed with no arguments, it lists the current set of
540 Incorporate any new messages that have arrived while mail
542 The new messages are added to the end of the message list,
543 and the current message is reset to be the first new mail message.
544 This does not renumber the existing message list, nor
545 does it cause any changes made so far to be saved.
548 Takes as argument login names and distribution group names and sends
549 mail to those people.
551 Indicate that a list of messages be sent to
553 in your home directory when you quit.
555 action for messages if you do
562 Takes a list of messages and invokes the pager on that list.
569 Goes to the next message in sequence and types it.
570 With an argument list, types the next matching message.
577 Takes a message list and types out each message on the user's terminal.
580 Terminates the session, saving all undeleted, unsaved messages in
583 file in his login directory, preserving all messages marked with
588 in his system mailbox, and removing all other messages from his system
590 If new mail has arrived during the session, the message
591 .Dq Li "You have new mail"
593 If given while editing a
594 mailbox file with the
596 flag, then the edit file is rewritten.
597 A return to the shell is
598 effected, unless the rewrite of edit file fails, in which case the user
604 Takes a message list and sends mail to the sender and all
605 recipients of the specified message.
606 The default message must not be deleted.
611 Add the list of header fields named to the
612 .Em "retained list" .
613 Only the header fields in the retained list
614 are shown on your terminal when you print a message.
615 All other header fields are suppressed.
620 commands can be used to print a message in its entirety.
623 is executed with no arguments, it lists the current set of
627 Takes a message list and a filename and appends each message in
628 turn to the end of the file.
629 The filename in quotes, followed by the line
630 count and character count is echoed on the user's terminal.
633 With no arguments, prints all variable values.
636 Arguments are of the form
637 .Ar option Ns Li = Ns Ar value
638 (no space before or after
642 Quotation marks may be placed around any part of the assignment statement to
643 quote blanks or tabs, i.e.\&
644 .Dq Li "set indentprefix=\*q->\*q"
655 Header fields thus marked are filtered out when
658 or when automatically saving to
670 Header fields thus marked are the only ones saved
671 with a message when saving by
673 or when automatically saving to
680 Invokes an interactive version of the shell.
682 Takes a message list and prints out the size in characters of each
688 commands from a file.
690 Takes a message list and prints the top few lines of each.
692 lines printed is controlled by the variable
700 Takes a list of names defined by
702 commands and discards the remembered groups of users.
704 no longer have any significance.
707 Takes a message list and marks each message as
712 Takes a message list and marks each message as
716 Takes a list of option names and discards their remembered values;
721 Takes a message list and invokes the display editor on each message.
730 the header) is saved.
731 Extremely useful for such tasks as sending and receiving source
732 program text over the message system.
740 utility presents message headers in windowfuls as described under the
745 attention forward to the next window with the
748 Also, you can move to the previous window by using
752 Here is a summary of the tilde escapes,
753 which are used when composing messages to perform
755 Tilde escapes are only recognized at the beginning
759 is somewhat of a misnomer since the actual escape character can be set
762 .Bl -tag -width indent
764 Inserts the autograph string from the sign= option into the message.
766 Inserts the autograph string from the Sign= option into the message.
767 .It Ic ~b Ar name ...
768 Add the given names to the list of carbon copy recipients but do not make
769 the names visible in the Cc: line
772 .It Ic ~c Ar name ...
773 Add the given names to the list of carbon copy recipients.
777 from your home directory into the message.
779 Invoke the text editor on the message collected so far.
781 editing session is finished, you may continue appending text to the
783 .It Ic ~f Ar messages
784 Read the named messages into the message being sent.
785 If no messages are specified, read in the current message.
786 Message headers currently being ignored (by the
790 command) are not included.
791 .It Ic ~F Ar messages
794 except all message headers are included.
796 Edit the message header fields by typing each one in turn and allowing
797 the user to append text to the end or modify the field by using the
798 current terminal erase and kill characters.
800 Inserts the value of the named option into the text of the message.
801 .It Ic ~m Ar messages
802 Read the named messages into the message being sent, indented by a
803 tab or by the value of
805 If no messages are specified,
806 read the current message.
807 Message headers currently being ignored (by the
811 command) are not included.
812 .It Ic ~M Ar messages
815 except all message headers are included.
817 Print out the message collected so far, prefaced by the message header
820 Abort the message being sent, copying the message to
822 in your home directory if
825 .It Ic ~r Ar filename , Ic ~r Li \&! Ns Ar command
826 .It Ic ~< Ar filename , Ic ~< Li \&! Ns Ar command
827 Read the named file into the message.
828 If the argument begins with a
830 the rest of the string is taken as an arbitrary system command and is
831 executed, with the standard output inserted into the message.
835 as the Reply-To field.
837 Cause the named string to become the current subject field.
838 .It Ic ~t Ar name ...
839 Add the given names to the direct recipient list.
841 Invoke an alternative editor (defined by the
843 environment variable) on the
844 message collected so far.
845 Usually, the alternative editor will be a
847 After you quit the editor, you may resume appending
848 text to the end of your message.
849 .It Ic ~w Ar filename
850 Write the message onto the named file.
854 except the message is not saved in
857 Execute the indicated shell command, then return to the message.
858 .It Ic ~| Ar command , Ic ~^ Ar command
859 Pipe the message through the command as a filter.
861 no output or terminates abnormally, retain the original text of the
867 to rejustify the message.
868 .It Ic ~: Ar mail-command , Ic ~_ Ar mail-command
872 Not all commands, however, are allowed.
874 Simulate end-of-file on input.
876 Print a summary of the available command escapes.
878 Insert the string of text in the message prefaced by a single
881 you have changed the escape character, then you should double
882 that character in order to send it.
885 Options can be set with the
888 and can be disabled with the
891 .Ic set Cm no Ns Ar name
893 Options may be either binary, in which case it is only
894 significant to see whether they are set or not; or string, in which
895 case the actual value is of interest.
896 If an option is not set,
898 will look for an environment variable of the same name.
899 The available options include the following:
900 .Bl -tag -width indent
902 Causes messages saved in
904 to be appended to the end rather than prepended.
905 This should always be set (preferably in one of the system-wide
913 to prompt you for the subject of each message you send.
915 you respond with simply a newline, no subject field will be sent.
919 Causes you to be prompted for additional blind carbon copy recipients at the
921 Responding with a newline indicates your
922 satisfaction with the current list.
926 Causes you to be prompted for additional carbon copy recipients at the
928 Responding with a newline indicates your
929 satisfaction with the current list.
933 Causes new mail to be automatically incorporated when it arrives.
934 Setting this is similar to issuing the
936 command at each prompt, except that the current message is not
937 reset when new mail arrives.
943 command to behave like
945 thus, after deleting a message, the next one will be typed
952 is used as a threshold to determine how long a message must
958 is set without a value,
959 then the height of the terminal screen stored in the system
960 is used to compute the threshold (see
965 Setting the binary option
967 is the same as specifying
969 on the command line and causes
971 to output all sorts of information useful for debugging
980 to interpret a period alone on a line as the terminator
981 of a message you are sending.
985 If defined, the first character of this option gives the character to
990 Reverses the sense of
998 The name of the directory to use for storing folders of
1000 If this name begins with a
1003 considers it to be an absolute pathname; otherwise, the
1004 folder directory is found relative to your home directory.
1006 If defined, initially display message headers when reading mail or
1007 editing a mail folder.
1010 This option can be disabled by giving the
1012 flag on the command line.
1014 This option is used to hold messages in the system mailbox
1019 Causes interrupt signals from your terminal to be ignored and echoed as
1024 An option related to
1032 as the end of a message.
1042 tilde escape for indenting messages, in place of
1043 the normal tab character
1045 Be sure to quote the value if it contains
1048 Usually, when a group is expanded that contains the sender, the sender
1049 is removed from the expansion.
1050 Setting this option causes the sender
1051 to be included in the group.
1055 Suppresses the printing of the version when first invoked.
1059 If defined, gives the pathname of the file used to record all outgoing
1061 If not defined, outgoing mail is not saved.
1065 Reverses the sense of
1073 If this option is set, and you abort a message with two
1077 will copy the partial letter to the file
1079 in your home directory.
1082 .It Va searchheaders
1083 If this option is set, then a message-list specifier in the form
1084 .Dq Li / Ns Ar x Ns Li : Ns Ar y
1085 will expand to all messages containing the substring
1089 The string search is case insensitive.
1092 is omitted, it will default to the
1097 is a special case, and will expand
1098 to all messages containing the substring
1108 is case sensitive, so that
1110 can be used to limit the search for
1116 .Va nosearchheaders .
1118 If defined, gives the number of lines of a message to be printed out
1121 command; normally, the first five lines are printed.
1125 is the same as using the
1127 flag on the command line.
1130 runs in verbose mode,
1131 the actual delivery of messages is displayed on the user's
1137 .Bl -tag -width ".Ev REPLYTO"
1139 Pathname of the file to save partial messages to in case of interrupts
1144 Pathname of the text editor to use in the
1149 If not defined, then a default editor is used.
1151 Pathname of the user's home directory.
1153 Pathname of the directory lister to use in the
1159 Location of the user's mailbox.
1163 Pathname of file containing initial
1169 The name of the mailbox file.
1170 It can be the name of a folder.
1173 in the user's home directory.
1175 Pathname of the program to use in the
1180 The default paginator
1182 is used if this option is not defined.
1184 If set, will be used to initialize the Reply-To field for outgoing
1187 Pathname of the shell to use in the
1192 A default shell is used if this option is
1195 Pathname of the text editor to use in the
1201 Login name of the user executing mail.
1204 .Bl -tag -width ".Pa /usr/share/misc/mail.*help" -compact
1213 This can be overridden by setting the
1215 environment variable.
1218 .It Pa /usr/share/misc/mail.*help
1221 .It Pa /usr/share/misc/mail.rc
1222 .It Pa /usr/local/etc/mail.rc
1224 System-wide initialization files.
1225 Each file will be sourced, in order,
1240 This man page is derived from
1241 .%T "The Mail Reference Manual"
1242 originally written by
1245 There are some flags that are not documented here.
1247 not useful to the general user.
1255 which can be confusing.
1259 list is incorrect English (it should be
1260 .Dq alternatives ) ,
1261 but is retained for compatibility.