Section: User Commands (1)
Updated: March 3, 2008
Index Return to Main Contents


mailutil - mail utility program  


mailutil command [switches] [arguments]

All commands accept the -d, -v, and -u switches in addition to any command-specific switches.

mailutil check [MAILBOX]

mailutil create MAILBOX

mailutil delete MAILBOX

mailutil rename SOURCE DESTINATION

mailutil copy [-rw] [-kw] [-ig] SOURCE DESTINATION

mailutil move [-rw] [-kw] [-ig] SOURCE DESTINATION

mailutil append [-rw] [-kw] [-ig] SOURCE DESTINATION

mailutil appenddelete [-rw] [-kw] [-ig] SOURCE DESTINATION

mailutil prune MAILBOX CRITERIA

mailutil transfer [-m mode] [-rw] [-kw] [-ig] SOURCE DESTINATION  


mailutil replaces the old chkmail, imapcopy, imapmove, imapxfer, mbxcopy, mbxcreat, and mbxcvt programs.

mailutil check determines whether new mail exists in the given mailbox (the default is INBOX). The number of new messages is defined as the number of messages that have "Recent" status set. If the mailbox contains no new messages, mailutil check will indicate that no new mail is present; otherwise, it will report the number of new messages. In either case, it will also indicate the canonical form of the name of the mailbox.

mailutil create creates a new mailbox with the given name. The mailbox name must not already exist. A mailbox can be created in a particular format by prefixing the name with #driver. followed by the format name and a / character. For example, the command

   mailutil create #driver.mbx/junkmail
will create a new mailbox named "junkmail" in mbx format.

mailutil delete deletes an existing mailbox with the given name.

mailutil rename renames an existing mailbox to a new name (which must not already exist). This only works if the old and new names are in the same mail store. A more general means to rename a mailbox is to do a mailutil copy of the old name to the new name, followed by a mailutil delete of the old name.

mailutil copy creates a new mailbox and copies messages from the old mailbox to the new mailbox. As in mailutil create a mailbox format can be specified with the new mailbox. For example, the command

   mailutil copy INBOX #driver.mbx/INBOX
will copy messages from your existing INBOX to an mbx-format INBOX.

mailutil move is similar to mailutil copy but in addition will also remove (delete and expunge) the messages from the old mailbox after copying them to the new mailbox.

mailutil append and mailutil appenddelete are similar to mailutil copy and mailutil move respectively except that they do not create the destination mailbox.

mailutil prune prunes the mailbox of messages which match certain criteria, which are in the form of IMAP2 (RFC 1176) SEARCH arguments. For example, the command.

  mailutil prune INBOX "before 1-jan-2004"
will delete and expunge all messages written before January 1, 2004.

Note that mailutil implements pruning by deleting the matching messages, and then expunging the mailbox. Consequently, mailutil will also expunge any messages which were deleted at the time of the pruning.

mailutil transfer copies an entire hierarchy of mailboxes from the named source to the named destination. Mailboxes are created on the destination as needed. Any error in copying messages will cause the transfer to stop.

Normally, any error in creation will cause the transfer to stop. However, if -m MODE or -merge MODE is specified, a merging transfer is performed. The MODE argument indicats the type of merge:

-m[erge] prompt indicates that the user should be asked for an alternative name to create. If creating the new name fails, the user will be asked again.

-m[erge] append indicates that it's alright to copy the messages into an existing mailbox with that name. If the mailbox does not exist, the user will be prompted for an alternative name.

-m[erge] suffix=XXXX where XXXX is any string, indicates that an alternative name should be built by appending the given suffix to the name. It that alternative name can't be created, then the user will be prompted for an alternative name.

The source hierarchy consists of all mailboxes which start with the given source name. With the exception of a remote system specification (within "{}" braces), the source name is used as the name of the destination. The destination hierarchy is a prefix applied to any new names being created. For example,

   mailutil transfer foo bar
will copy all mailboxes with names beginning with "foo" to names beginning with "bar" (hence "foobar" will be copied to "barfoobar"). Similarly,

   mailutil transfer "{}" "{}old/"
will copy all mailboxes from the IMAP server to equivalent names starting with "old/" on the IMAP server.  


The -d or -debug flag prints full debugging telemetry including protocol operations.

The -v or -verbose flag prints verbose (non-error) telemetry.

The -u USERID or -user USERID switch attempts to become the indicated user. This is for the benefit of system administrators who want to do mailutil operations on a userid that does not normally have shell access.

The -rw or -rwcopy flag causes the source mailbox to be open in readwrite mode rather than readonly mode. Normally, mailutil tries to use readonly mode to avoid altering any flags in the source mailbox, but some mailbox types, e.g. POP3, can't be open in readonly mode.

The -kw or -kwcopy flag causes the keywords of the source mailbox to be created in the destination mailbox. Normally, mailutil does not create keywords in the destination mailbox so only those keywords that are already defined in the destination mailbox will be preserved. Note that some IMAP servers may automatically create keywords, so this flag may not be necessary.

The -ig or -ignore flag causes the keywords of the source mailbox to be ignored completely and no attempt is made to copy them to the destination mailbox.

The -ig[nore] and -kw[copy] flags are mutually exclusive.  


The arguments are standard c-client mailbox names. A variety of mailbox name formats and types of mailboxes are supported by c-client; examples of the most common forms of names are:

primary incoming mail folder on the local system
mail folder named "tx-project" in "archive" subdirectory of local filesystem home directory
primary incoming mail folder on IMAP server system ""
mail folder named "tx-project" in "archive" subdirectory on IMAP server system ""
newsgroup "comp.mail.misc" on local filesystem
newsgroup "comp.mail.misc" on NNTP server system ""
mail folder on POP3 server system ""

See your system manager for more information about the types of mailboxes which are available on your system.  


You must surround a {host}mailbox argument with quotation marks if you run mailutil from csh(1) or another shell for which braces have special meaning.

You must surround a #driver.format/mailbox argument with quotation marks if you run mailutil from a shell in which "#" is the comment character.  


Mark Crispin, MRC@Washington.EDU



AUTHOR manual pages