EMM(1)1999 February 2EMM(1)



emm - electronic mail manager  


emm [-r] [mailbox]  


Emm is an interface for reading and managing a database of electronic mail. Emm is usually invoked to read mail from a primary mail folder and any new mail from an incoming mailbox. Emm provides commands to browse, display, save, delete, and respond to messages in a mailbox. This manual concerns itself with the emm commands, variables, and actions.  


Emm supports a single option: -r. If that option is supplied, new mail is not incorporated into the mailbox, and no commands which alter the mail folder on disk are permitted.  


Emm commands take the form of a command word and a list of arguments. Most commands take a message sequence: a series of arguments specifying a set of related messages on which the command operates. Commands and arguments which are emm keywords may be abbreviated to a unique prefix.  


Message sequences are sets of messages sharing some common trait. There are a number of specifiers used to compose a message sequence. Those sequence specifiers taking dates allow them to be entered in a flexible format: everything from 5/5/92 to yesterday or last tuesday is supported. See getdate(3) for a full specification of the supported date formats. When textual comparions are performed, they are done without regard to case. Message sequence composition with and and or is supported. Parenthesized sequences may be used to specify precedence; without them, and and or have equal precedence and are parsed left-to-right.

after date
All messages sent after date.
All messages in the current mail folder, whether deleted or not. May be abbreviated as a.
All messages to which a reply has been sent.
before date
All messaages sent before date.
cc word
All messages whose Cc: header contains word.
contains text
All messages containing text. text is treated as a regular expression.
The current message emm is set at. May be abbreviated as c.
All messages which have been marked for deletion with either the delete or move commands (see COMMANDS below).
All messages which have been marked using the flag command (see COMMANDS below).
from phrase
All messages containing phrase in the From: header.
keywords word
All messages containing word in the Keywords: header.
The last message in the mailbox.
longer size
All messages more than size characters in length.
Messages that are both recent and unseen.
newsgroups word
All messages containing word in the Newsgroups: header.
All messages not in the sequence specified by the rest of the arguments.
on date
All messages sent on date.
The last message sequence supplied to a previous emm command.
All messages which have been displayed with the read command. This may be abbreviated as r.
All messages which have been incorporated into the current mail folder since the beginning of this session with emm.
Equivalent to read.
sender word
All messages which contain word in their Sender: header, if one appears.
shorter size
All messages whose length is less than size.
since date
Equivalent to after.
size size
All messages exactly size characters long.
subject phrase
All messages which contain phrase in their Subject: header.
text phrase
All messages which contain phrase in their message body.
to word
All messages which contain word in their To: header.
All messages which have not been replied to with the reply command.
All messages which have not been marked for deletion.
All messages which have not been displayed using the read command. May be abbreviated as u.
Equivalent to unread.

Emm allows message numbers and ranges of message numbers as message sequence specifiers. Message numbers and ranges may be combined by separating them with a comma. Message ranges may be specified in several ways:

The range of messages from n to m, inclusive
The range of messages from n to m, inclusive
m messages beginning with message n

There are several additional special symbols that may be used in message sequences.

The current message
The last message
The last message


An emm folder is a file which holds a set of messages. Each user has a primary folder, which emm uses as the default folder when no mailbox argument is supplied at invocation. The name of this default folder is set from the value of the mailbox-file variable (see VARIABLES below). Emm makes access to other folders convenient. The get command is used to switch between folders, and the move and copy commands can transfer messages from the current mail folder to another (see COMMANDS below). Mail folders are kept in the directory named by the folder-directory variable.  


Emm uses the GNU readline library as the basis of its user interface. This library provides command line editing, word completion, and, together with emm, a dynamic help system.  


At any point while typing a command, the TAB key may be used to attempt completion of the word under the cursor. Completion works for emm commands, variables, filenames, message sequence specifiers, and other arguments to emm commands.  


When the ? key is pressed during command entry, emm prints out the list of possible input alternatives based on the text so far. This gives a hint about the input that emm is expecting.  

Command History

Emm provides access to the command history, the list of previously-typed commands. The history command may be used to examine the list. Readline provides commands to access and search the history list.  

Line Editing

By default, the line editing commands are similar to those of emacs. A vi-style line editing interface is also available. Readline allows the bindings of key sequences to commands to be changed arbitrarily, and allows key sequences to be bound to a string of text inserted when the sequence is pressed (editing macros). Readline also provides a number of variables to tailor its behavior. These variables can be set in the readline startup file, ~/.inputrc.  


Emm provides a form of macros, similar to shell aliases, which allow the substitution of a word or phrase for a word typed in a command position. Macros are defined with the define command and removed with the undefine command (see COMMANDS below). Whenever a command is entered, the command name is checked to see if it is a macro. If so, the command name is replaced by the text of the macro. The replacement text may contain any valid emm command. Macros are not recursive.  


Emm operates in one of two modes. Emm is in read mode when reading a message sequence with the read command, and in top-level mode otherwise. The difference between the two modes is the type of message sequences accepted by the commands: in read mode, commands do not take message sequences as arguments, but operate on the current message.  


Emm allows non-text messages using the MIME multimedia mail format to be displayed. Emm uses a set of auxiliary programs to display mail in formats other than text. These are specified in a mailcap file which maps MIME mail object types to programs to display them. The mailcap entry specifies not only what program to run, but the environment in which to run it, and arguments to give it. Emm can display all parts of a multi-part message individually, and allow each part to be saved separately.  


All emm commands which take filenames as arguments replace a leading + character with the value of the mail-directory variable and perform tilde expansion as described in bash(1). Commands which take a message-sequence as an argument default to the current message if a sequence is not supplied.

. file
Read and execute commands from file as if they had been typed at the keyboard. Can also be written as source or take.
Equivalent to reply.
Clear the screen.
Send a bug report to the current emm maintainer.
Display a message on the screen without treating it as a MIME multipart message.
cd [directory]
Change the current directory to directory. The value of the $HOME environment variable is the default directory.
Check for and incorporate any new mail. New mail is not incorporated if the current folder is not the primary folder.
copy file [message sequence]
Copy the messages in message sequence to file. If file is a +, behave as specified by the save-message-by-name variable. May also be written as save.
count message-sequence
Count the number of messages in message-sequence and print the total.
Write the current variable settings and command macros to ~/.emmrc so they can be used as the default profile. Can also be written as save-init.
Print the current date and time in Internet format.
define word text
Define word to be a command macro. When word is used as a command, it will be replaced by text.
delete message-sequence
Mark the messages in message-sequence for deletion.
echo word [word ...]
Echo the words to the standard output. This is useful in files read with the . command.
Exit emm, removing deleted messages from the current folder. Can be abbreviated as x.
Permanently remove all messages marked for deletion from the current folder.
flag message-sequence
Give all messages in message-sequence the flagged attribute. Flagged messages are normally displayed when emm reads in a folder.
forward message-sequence
Resend all messages in message-sequence to another address.
get file
Read in file and make it the current mail folder.
headers message-sequence
Print out a summary line for each message in message-sequence. The summary line consists of a set of flag values, the message number, the sender (or first recipient, if sent by the current user or one of the addresses in the alternate-names variable), the subject, and the size of the message in characters. The flag letters are:
new (recent and unseen)
recent and seen
help help-topic
Print out a short message on help-topic. The list of help topics is printed if no help-topic argument is supplied.
history [n]
Print the last n commands from the command history. If n is not supplied, the entire history is printed.
ignore header [header ...]
Add all header arguments to the list of headers that will not be displayed when showing a message on the screen with the read or type commands.
jump message-number
Make message-number the current message.
Equivalent to delete followed by next.
list message-sequence
pipe message-sequence
Pipe the messages in message-sequence to the command named by the list-command variable. This is a general message piping mechanism; use print to send a message to a printer.
mail [addresses]
send [addresses]
Send a mail message to addresses.
mark message-sequence
Mark all messages in message-sequence as having been read.
move file [message-sequence]
Equivalent to copy file message-sequence followed by delete message-sequence.
Move to the next message, make it the current message, and display it. In read mode, this moves to and displays the next message in the current sequence.
Move to the previous message, make it the current message, and display it. In read mode, this moves to the previous message in the current sequence.
Print the current message on a printer using the command found in the variable lpr-filter.
Ask a series of questions to set the values of some of emm's variables and write out an .emmrc file as with the create-init command.
Start an interactive subshell ``under'' emm using the shell named by the shell variable.
Print the full pathname of the current directory.
Exit emm without removing deleted messages from the current folder.
read message-sequence
Read the messages in message-sequence in read mode.
remail message-sequence
resend message-sequence
Send the messages in message-sequence to a new set of recipients, without altering the headers in order to make it appear that the messages were sent by the original sender instead of the current user.
reply message-sequence
Send a reply to the sender or all recipients of each message in message-sequence, according to the value of the reply-to-all variable.
set variable value
Make the value of emm variable variable be value. Without value, print the value of variable. With no arguments, print the name and value of each of the emm variables.
The rest of the command line is passed to the shell specified by the shell variable as a UNIX command. Can also be entered as !.
sort sortspec
Sort the messages in the current mail folder according to sortspec. Sortspec can be one of
to sort by date
to sort by the message subject
to sort by the address in the From: header (or Sender:, if From: is not present)
to sort by the size of the message in characters
Print out some statistics about the current mail folder.
Suspend execution and return to the shell which called emm, on versions of UNIX that support it.
type message-sequence
Display the messages in message-sequence without going into read mode. This will display deleted messages, whereas read will not.
undefine macro [macro ...]
Remove the command macros.
undelete message-sequence
Mark the messages in message-sequence as not deleted.
unflag message-sequence
Mark the messages in message-sequence as no longer flagged for special attention.
unignore header [header ...]
Delete the headers from the list of headers whose display is suppressed when a message is displayed.
unmark message-sequence
unread message-sequence
Mark the messages in message-sequence as unread.
Write the current folder back to its disk file, removing deleted messages, then reread it and reinitialize. This can be used to refresh the folder without leaving emm.
Print out version information about the running copy of emm.
write [file]
Write the current folder to file without removing deleted messages. If file is not given, this updates the current folder's disk file, and can be used to checkpoint the mailbox.


Almost every aspect of emm's behavior may be tailored using variables. The variables and their default values, if any, are described below.

This is a list of character sets other than the default (US-ASCII) which the current output device can display. MIME text messages in these character sets will be displayed directly rather than by a command specified in the mailcap file.
A list of mail addresses that will be treated as your address. When the headers command finds a message from one of the addresses in this list, it will display the recipient in its summary instead of the sender address.
blank-screen-in-read (default yes)
If set to yes, the screen is cleared between messages in read mode.
delete-empty-mailboxes (default yes)
If set to yes, mail folders that are emptied by emm (have 0 messages written to them), will be deleted. The primary mailbox (given by the variable mailbox-file) is exempt from this treatment.
do-ignore-headers (default yes)
If set to yes, the list of ignored headers is consulted when displaying a message, and headers in that list are not shown. Otherwise, the list is not consulted, and the entire message is displayed. Headers may be added to (deleted from) that list with the ignore (unignore) command.
exit-on-control-d (default yes)
If set to yes, emm will exit when the EOF character (usually Control-D) is entered from the keyboard.
folder-directory (default ~/Mail)
The directory for mail-related files and mail folders.
incoming-mail-file (default ~/mbox)
The file where the system puts new mail. Emm looks in this file for new mail to incorporate.
list-command (default /usr/local/lib/emm/mailp)
The shell command to use when listing messages with the list or pipe commands.
lpr-filter (default /usr/local/lib/emm/mailp)
The command to use when printing a copy of a message on a printer.
mail-file-mode (default 0600)
The file protection mode to set the mailbox to.
mailbox-file (default ~/Mail/mailbox)
The name of the primary mail folder.
new-mail-check-always (default no)
If set to yes, then check for new mail after every command.
pager (default /usr/local/bin/more)
The default CRT filter to use when displaying messages.
prompt (default ``emm> '')
The prompt to use when waiting for commands.
read-prompt (default ``emm-read> '')
The prompt to use when waiting for commands in read mode.
read-receipt-default (default yes)
The default response when the user is asked to send a read acknowledgement for a message.
reply-cc-me (default yes)
If set to yes, the user receives copies of replies he sends.
reply-insert-message (default yes)
If set to yes, a copy of the original message will be inserted into a reply.
reply-prefix-string (default ``> '')
If the value of reply-insert-message is yes, each line of the original message wull be prefixed with this string when the message is inserted into the reply.
reply-to-all (default no)
If set to yes, a reply will be sent to all recipients of the original message by default.
reply-using-richtext (default no)
If set to yes, when the original message is inserted into a reply according to the value of reply-insert-message, it will be delimited with the MIME richtext <excerpt> construct. In this case, the value of reply-prefix-string is ignored.
save-history (default yes)
If set to yes, the command line history will be saved in a file for use in subsequent emm sessions.
save-message-by-name (default yes)
If set to yes, a filename of + given to the copy or move commands will cause the message to be saved to a file in the mail directory with the same name as the login name of the sender of the first message in the message sequence argument.
If set to yes, messages saved to files as the result of an argument of + to the copy and move commands according to the value of save-message-by-name will write to a file only if that file already exists. If it does not, the message will not be saved and a warning will be printed.
send-read-receipt (default ask)
If set to always, read receipts will be sent automatically if a message that requests one is read. If set to never, read receipts are never sent. If set to ask, the user is asked whether or not to send a read receipt for each message which requests one.
shell (default $SHELL)
The command interpreter to use for shell commands and subshells.
show-flagged-messages (default yes)
If yes, the headers of all flagged messages are displayed at startup.
use-pager (default yes)
If yes, displayed messages are piped through a crt filter.


At startup, emm reads commands from a system-wide initialization file and an initialization file named .emmrc in the user's home directory. Only set, define, and undefine commands may be given in this file, since this file is read before the mailbox is scanned. Any commands using message sequences will not have the desired effect. A file may be sourced using . after the mailbox is read in to run commands affecting message status.  


The emm executable
The system-wide file specifying how non-text messages should be displayed
The system-wide emm startup file
The personal emm startup file
The file containing user-specific content type to display program mappings
The personal readline startup file


sm(1), bash(1), getdate(3), mailcap(4)

The Gnu Readline Library, Brian Fox and Chet Ramey

MIME: Multipurpose Internet Mail Extensions, Internet RFC 1341

A User Agent Configuration Mechanism for Multimedia Mail Format Information, Internet RFC 1343  


It's too big and too slow.

The message sequence grammar should give and higher precedence than or.  


Chet Ramey, Case Western Reserve University


Command History
Line Editing

This document was created by man2html using the manual pages.
Time: 18:05:21 GMT, August 04, 1999