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. All advertising materials mentioning features or use of this software
13 .\" must display the following acknowledgement:
14 .\" This product includes software developed by the University of
15 .\" California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\" may be used to endorse or promote products derived from this software
18 .\" without specific prior written permission.
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 .\" @(#)mail.1 8.8 (Berkeley) 4/28/95
33 .\" $FreeBSD: src/usr.bin/mail/mail.1,v 1.45 2004/05/19 09:51:31 ru Exp $
41 .Nd send and receive mail
50 .Op Fl Ar sendmail-option ...
68 utility is an intelligent mail processing system, which has
69 a command syntax reminiscent of
71 with lines replaced by messages.
73 The following options are available:
74 .Bl -tag -width indent
78 delivery are displayed on the user's terminal.
80 Test for the presence of mail in the (by default, system)
82 An exit status of 0 is returned if
83 it has mail; otherwise, an exit status
86 Write a header summary only.
88 Do not send messages with an empty body.
89 This is useful for piping errors from
93 Ignore tty interrupt signals.
95 particularly useful when using
101 to run in interactive mode even when
102 input is not a terminal.
106 character when sending mail is only active in interactive mode.
108 Inhibit reading the system-wide
112 Inhibit the initial display of message headers
113 when reading mail or editing a mail folder.
118 (Only the first argument after the
120 flag is used as a subject; be careful to quote subjects
123 Send carbon copies to
128 argument should be a comma-separated list of names.
130 Send blind carbon copies to
135 argument should be a comma-separated list of names.
137 Read in the contents of your
139 (or the specified file)
140 for processing; when you
143 writes undeleted messages back to this file.
145 Record the message in a file named after the first
147 The name is the login-name portion of the
148 address found first on the
150 line in the mail header.
157 .Dl "mail -f /var/mail/user"
159 .Ss "Startup Actions"
162 will execute commands in the system command files
163 .Pa /usr/share/misc/mail.rc ,
164 .Pa /usr/local/etc/mail.rc
167 in order, unless explicitly told not to by the use of the
170 Next, the commands in the user's personal command file
175 utility then examines its command line options to determine whether a
176 new message is to be sent, or whether an existing mailbox is to
179 To send a message to one or more people,
181 can be invoked with arguments which are the names of people to
182 whom the mail will be sent.
183 You are then expected to type in
184 your message, followed
187 at the beginning of a line.
189 .Sx "Replying To or Originating Mail" ,
190 describes some features of
192 available to help you compose your letter.
196 is given no arguments and checks your mail out of the
198 prints out a one line header of each message found.
199 The current message is initially the first message (numbered 1)
200 and can be printed using the
202 command (which can be abbreviated
204 You can move among the messages much as you move between lines in
210 moving backwards and forwards, and
212 .Ss "Disposing of Mail"
213 After examining a message you can
222 program to forget about the message.
223 This is not irreversible; the message can be
226 by giving its number, or the
228 session can be aborted by giving the
232 Deleted messages will, however, usually disappear never to be seen again.
233 .Ss "Specifying Messages"
238 can be given a list of message numbers as arguments to apply
239 to a number of messages at once.
242 deletes messages 1 and 2, while
244 deletes messages 1 through 5.
247 addresses all messages, and
250 the last message; thus the command
252 which prints the first few lines of a message could be used in
254 to print the first few lines of all messages.
255 .Ss "Replying To or Originating Mail"
259 set up a response to a message, sending it back to the
260 person who it was from.
261 Text you then type in, up to an end-of-file,
262 defines the contents of the message.
263 While you are composing a message,
265 treats lines beginning with the character
270 (alone on a line) will place a copy
271 of the current message into the response right shifting it by a tabstop
275 Other escapes will set up subject fields, add and delete recipients
276 to the message and allow you to escape to an editor to revise the
277 message or to a shell to run some commands.
279 are given in the summary below.)
280 .Ss "Ending a Mail Processing Session"
287 Messages which have been examined go to your
289 file unless they have been deleted in which case they are discarded.
290 Unexamined messages go back to the post office.
294 .Ss "Personal and System Wide Distribution Lists"
295 It is also possible to create a personal distribution lists so that,
296 for instance, you can send mail to
299 to a group of people.
300 Such lists can be defined by placing a line like
302 .Dl "alias cohorts bill ozalp jkf mark kridle@ucbcory"
306 in your home directory.
307 The current list of such aliases can be displayed with the
311 System wide distribution lists can be created by editing
312 .Pa /etc/mail/aliases ,
317 these are kept in a different syntax.
318 In mail you send, personal aliases will be expanded in mail sent
319 to others so that they will be able to
324 are not expanded when the mail is sent,
325 but any reply returned to the machine will have the system wide
326 alias expanded as all mail goes through
328 .Ss "Network Mail (ARPA, UUCP, Berknet)"
331 for a description of network addresses.
335 utility has a number of options which can be set in the
337 file to alter its behavior; thus
342 (These options are summarized below.)
345 .%T "Mail Reference Manual" . )
347 Each command is typed on a line by itself, and may take arguments
348 following the command word.
349 The command need not be typed in its
350 entirety \(em the first command which matches the typed prefix is used.
351 For commands which take message lists as arguments, if no message
352 list is given, then the next message forward which satisfies the
353 command's requirements is used.
354 If there are no messages forward of
355 the current message, the search proceeds backwards, and if there are no
356 good messages at all,
359 .Dq Li "No applicable messages"
362 .Bl -tag -width indent
364 Print out the preceding message.
370 previous message and prints it.
372 ignore the remainder of the line as a comment.
374 Prints a brief summary of commands.
381 command which follows.
386 but also prints out ignored header fields.
394 Does not reply to other
395 recipients of the original message.
403 With no arguments, prints out all currently-defined aliases.
405 argument, prints out that alias.
406 With more than one argument, creates
407 a new alias or changes an old one.
412 command is useful if you have accounts on several machines.
413 It can be used to inform
415 that the listed addresses are really you.
420 will not send a copy of the message to any of the addresses
426 command is given with no argument, the current set of alternative
430 Changes the user's working directory to that specified, if given.
432 no directory is given, then changes to the user's login directory.
437 command does the same thing that
439 does, except that it does not mark the messages it
440 is used on for deletion when you
444 Takes a list of messages as argument and marks them all as deleted.
445 Deleted messages will not be saved in
447 nor will they be available for most other commands.
451 Deletes the current message and prints the next message.
452 If there is no next message,
458 Takes a list of messages and points the text editor at each one in
460 On return from the editor, the message is read back in.
465 Effects an immediate return to the shell without
466 modifying the user's system mailbox, his
468 file, or his edit file in
475 List the names of the folders in your folder directory.
480 command switches to a new mail file or folder.
482 arguments, it tells you which file you are currently reading.
483 If you give it an argument, it will write out changes (such
484 as deletions) you have made in the current file and read in
486 Some special conventions are recognized for
489 means the previous file,
491 means your system mailbox,
493 means user's system mailbox,
498 .Dq Li + Ns Ar folder
499 means a file in your folder
503 Takes a list of messages and prints their message headers.
506 Lists the current range of headers, which is an 18-message group.
510 argument is given, then the next 18-message group is printed, and if
513 argument is given, the previous 18-message group is printed.
521 Takes a message list and marks each
522 message therein to be saved in the
523 user's system mailbox instead of in
525 Does not override the
529 Add the list of header fields named to the
531 Header fields in the ignore list are not printed
532 on your terminal when you print a message.
534 command is very handy for suppression of certain machine-generated
540 commands can be used to print a message in its entirety, including
544 is executed with no arguments, it lists the current set of
547 Incorporate any new messages that have arrived while mail
549 The new messages are added to the end of the message list,
550 and the current message is reset to be the first new mail message.
551 This does not renumber the existing message list, nor
552 does it cause any changes made so far to be saved.
555 Takes as argument login names and distribution group names and sends
556 mail to those people.
558 Indicate that a list of messages be sent to
560 in your home directory when you quit.
562 action for messages if you do
569 Takes a list of messages and invokes the pager on that list.
576 Goes to the next message in sequence and types it.
577 With an argument list, types the next matching message.
584 Takes a message list and types out each message on the user's terminal.
587 Terminates the session, saving all undeleted, unsaved messages in
590 file in his login directory, preserving all messages marked with
595 in his system mailbox, and removing all other messages from his system
597 If new mail has arrived during the session, the message
598 .Dq Li "You have new mail"
600 If given while editing a
601 mailbox file with the
603 flag, then the edit file is rewritten.
604 A return to the shell is
605 effected, unless the rewrite of edit file fails, in which case the user
611 Takes a message list and sends mail to the sender and all
612 recipients of the specified message.
613 The default message must not be deleted.
618 Add the list of header fields named to the
619 .Em "retained list" .
620 Only the header fields in the retained list
621 are shown on your terminal when you print a message.
622 All other header fields are suppressed.
627 commands can be used to print a message in its entirety.
630 is executed with no arguments, it lists the current set of
634 Takes a message list and a filename and appends each message in
635 turn to the end of the file.
636 The filename in quotes, followed by the line
637 count and character count is echoed on the user's terminal.
640 With no arguments, prints all variable values.
643 Arguments are of the form
644 .Ar option Ns Li = Ns Ar value
645 (no space before or after
649 Quotation marks may be placed around any part of the assignment statement to
650 quote blanks or tabs, i.e.\&
651 .Dq Li "set indentprefix=\*q->\*q"
662 Header fields thus marked are filtered out when
665 or when automatically saving to
677 Header fields thus marked are the only ones saved
678 with a message when saving by
680 or when automatically saving to
687 Invokes an interactive version of the shell.
689 Takes a message list and prints out the size in characters of each
695 commands from a file.
697 Takes a message list and prints the top few lines of each.
699 lines printed is controlled by the variable
707 Takes a list of names defined by
709 commands and discards the remembered groups of users.
711 no longer have any significance.
714 Takes a message list and marks each message as
719 Takes a message list and marks each message as
723 Takes a list of option names and discards their remembered values;
728 Takes a message list and invokes the display editor on each message.
737 the header) is saved.
738 Extremely useful for such tasks as sending and receiving source
739 program text over the message system.
747 utility presents message headers in windowfuls as described under the
752 attention forward to the next window with the
755 Also, you can move to the previous window by using
759 Here is a summary of the tilde escapes,
760 which are used when composing messages to perform
762 Tilde escapes are only recognized at the beginning
766 is somewhat of a misnomer since the actual escape character can be set
769 .Bl -tag -width indent
771 Inserts the autograph string from the sign= option into the message.
773 Inserts the autograph string from the Sign= option into the message.
774 .It Ic ~b Ar name ...
775 Add the given names to the list of carbon copy recipients but do not make
776 the names visible in the Cc: line
779 .It Ic ~c Ar name ...
780 Add the given names to the list of carbon copy recipients.
784 from your home directory into the message.
786 Invoke the text editor on the message collected so far.
788 editing session is finished, you may continue appending text to the
790 .It Ic ~f Ar messages
791 Read the named messages into the message being sent.
792 If no messages are specified, read in the current message.
793 Message headers currently being ignored (by the
797 command) are not included.
798 .It Ic ~F Ar messages
801 except all message headers are included.
803 Edit the message header fields by typing each one in turn and allowing
804 the user to append text to the end or modify the field by using the
805 current terminal erase and kill characters.
807 Inserts the value of the named option into the text of the message.
808 .It Ic ~m Ar messages
809 Read the named messages into the message being sent, indented by a
810 tab or by the value of
812 If no messages are specified,
813 read the current message.
814 Message headers currently being ignored (by the
818 command) are not included.
819 .It Ic ~M Ar messages
822 except all message headers are included.
824 Print out the message collected so far, prefaced by the message header
827 Abort the message being sent, copying the message to
829 in your home directory if
832 .It Ic ~r Ar filename , Ic ~r Li \&! Ns Ar command
833 .It Ic ~< Ar filename , Ic ~< Li \&! Ns Ar command
834 Read the named file into the message.
835 If the argument begins with a
837 the rest of the string is taken as an arbitrary system command and is
838 executed, with the standard output inserted into the message.
842 as the Reply-To field.
844 Cause the named string to become the current subject field.
845 .It Ic ~t Ar name ...
846 Add the given names to the direct recipient list.
848 Invoke an alternative editor (defined by the
850 environment variable) on the
851 message collected so far.
852 Usually, the alternative editor will be a
854 After you quit the editor, you may resume appending
855 text to the end of your message.
856 .It Ic ~w Ar filename
857 Write the message onto the named file.
861 except the message is not saved in
864 Execute the indicated shell command, then return to the message.
865 .It Ic ~| Ar command , Ic ~^ Ar command
866 Pipe the message through the command as a filter.
868 no output or terminates abnormally, retain the original text of the
874 to rejustify the message.
875 .It Ic ~: Ar mail-command , Ic ~_ Ar mail-command
879 Not all commands, however, are allowed.
881 Simulate end-of-file on input.
883 Print a summary of the available command escapes.
885 Insert the string of text in the message prefaced by a single
888 you have changed the escape character, then you should double
889 that character in order to send it.
892 Options can be set with the
895 and can be disabled with the
898 .Ic set Cm no Ns Ar name
900 Options may be either binary, in which case it is only
901 significant to see whether they are set or not; or string, in which
902 case the actual value is of interest.
903 If an option is not set,
905 will look for an environment variable of the same name.
906 The available options include the following:
907 .Bl -tag -width indent
909 Causes messages saved in
911 to be appended to the end rather than prepended.
912 This should always be set (preferably in one of the system-wide
920 to prompt you for the subject of each message you send.
922 you respond with simply a newline, no subject field will be sent.
926 Causes you to be prompted for additional blind carbon copy recipients at the
928 Responding with a newline indicates your
929 satisfaction with the current list.
933 Causes you to be prompted for additional carbon copy recipients at the
935 Responding with a newline indicates your
936 satisfaction with the current list.
940 Causes new mail to be automatically incorporated when it arrives.
941 Setting this is similar to issuing the
943 command at each prompt, except that the current message is not
944 reset when new mail arrives.
950 command to behave like
952 thus, after deleting a message, the next one will be typed
959 is used as a threshold to determine how long a message must
965 is set without a value,
966 then the height of the terminal screen stored in the system
967 is used to compute the threshold (see
972 Setting the binary option
974 is the same as specifying
976 on the command line and causes
978 to output all sorts of information useful for debugging
987 to interpret a period alone on a line as the terminator
988 of a message you are sending.
992 If defined, the first character of this option gives the character to
997 Reverses the sense of
1005 The name of the directory to use for storing folders of
1007 If this name begins with a
1010 considers it to be an absolute pathname; otherwise, the
1011 folder directory is found relative to your home directory.
1013 If defined, initially display message headers when reading mail or
1014 editing a mail folder.
1017 This option can be disabled by giving the
1019 flag on the command line.
1021 This option is used to hold messages in the system mailbox
1026 Causes interrupt signals from your terminal to be ignored and echoed as
1031 An option related to
1039 as the end of a message.
1049 tilde escape for indenting messages, in place of
1050 the normal tab character
1052 Be sure to quote the value if it contains
1055 Usually, when a group is expanded that contains the sender, the sender
1056 is removed from the expansion.
1057 Setting this option causes the sender
1058 to be included in the group.
1062 Suppresses the printing of the version when first invoked.
1066 If defined, gives the pathname of the file used to record all outgoing
1068 If not defined, outgoing mail is not saved.
1072 Reverses the sense of
1080 If this option is set, and you abort a message with two
1084 will copy the partial letter to the file
1086 in your home directory.
1089 .It Va searchheaders
1090 If this option is set, then a message-list specifier in the form
1091 .Dq Li / Ns Ar x Ns Li : Ns Ar y
1092 will expand to all messages containing the substring
1096 The string search is case insensitive.
1099 is omitted, it will default to the
1104 is a special case, and will expand
1105 to all messages containing the substring
1115 is case sensitive, so that
1117 can be used to limit the search for
1123 .Va nosearchheaders .
1125 If defined, gives the number of lines of a message to be printed out
1128 command; normally, the first five lines are printed.
1132 is the same as using the
1134 flag on the command line.
1137 runs in verbose mode,
1138 the actual delivery of messages is displayed on the user's
1144 .Bl -tag -width ".Ev REPLYTO"
1146 Pathname of the file to save partial messages to in case of interrupts
1151 Pathname of the text editor to use in the
1156 If not defined, then a default editor is used.
1158 Pathname of the user's home directory.
1160 Pathname of the directory lister to use in the
1166 Location of the user's mailbox.
1170 Pathname of file containing initial
1176 The name of the mailbox file.
1177 It can be the name of a folder.
1180 in the user's home directory.
1182 Pathname of the program to use in the
1187 The default paginator
1189 is used if this option is not defined.
1191 If set, will be used to initialize the Reply-To field for outgoing
1194 Pathname of the shell to use in the
1199 A default shell is used if this option is
1202 Pathname of the text editor to use in the
1208 Login name of the user executing mail.
1211 .Bl -tag -width ".Pa /usr/share/misc/mail.*help" -compact
1220 This can be overridden by setting the
1222 environment variable.
1225 .It Pa /usr/share/misc/mail.*help
1228 .It Pa /usr/share/misc/mail.rc
1229 .It Pa /usr/local/etc/mail.rc
1231 System-wide initialization files.
1232 Each file will be sourced, in order,
1243 .%T "The Mail Reference Manual"
1251 This man page is derived from
1252 .%T "The Mail Reference Manual"
1253 originally written by
1256 There are some flags that are not documented here.
1258 not useful to the general user.
1266 which can be confusing.
1270 list is incorrect English (it should be
1271 .Dq alternatives ) ,
1272 but is retained for compatibility.