Folder Index

Highlighting a folder on the folder listing screen and pressing ENTER shows an index of messages in the folder. Cone shows the following information for each message:

Folder Index Screen

 New Mail: 7 messages                 CONE                                  
  1  29-Jul-2002 Jack Jones              (2 Kb) IMAP server bug
  2  08-Aug-2002 Support                 (3 Kb) New security features
  3  25-Feb-2003 Sam Smith               (3 Kb)
  4  05-Mar-2003 Bill Black              (4 Kb) Re: IMAP server bug
  5  27-Mar-2003        (3 Kb) Suggested changes to README
N 6 Mon 06:39 PM Joseph_Brown@computer  (54 Kb) Re: your request for a copy 
N 7 Wed 10:55 AM Dr. Gary Green          (2 Kb) Spec file for release 1.7.1,

  New Mail: 7 messages                                                      
 ; Search            A wAtch/Unwatch     C Copy              E Extern cmd
 $ Sort folder       B Blind Fwd         D Delete           ^O mOre

The highlighted message on this screen marks the current message. Move the cursor using the cursor up/down keys, PgUp, and PgDn. The cursor left/right keys move the cursor to the previous/next flagged message. After running a search with the ; command (see below), use the cursor left/right keys to locate the messages found by the search.

L or the < returns to the folder listing screen, or use the following keys:


Display the current message.


Search messages, flag them, then do something to all flagged messages, at once. Additional options will be shown to enter the search criteria, described below.


Change the order the messages are shown on this screen. Initially, the messages are shown in the order they were added to the folder. Use this option to set the available sorting order: A - in the order they were added to the folder (default); D - order by each message's sent date; N - order messages by sender's (or the recipient's) name; S - order messages by their subject; T - order messages by threads.

The threaded view works best on UTF-8 consoles. It is also not very well suited for machines with limited resources. Computing a threaded view is expensive, and the threaded view needs to be recomputed whenever messages are added or removed from the folder. Machines with limited resources should use a subject-based sort, which is much faster, and gives similar results.


Watch replies to this message, or stop watching replies to this message. See Watching Threads, below, for more information.


Blindly forward the current message. The message is resent without adding any additional comments, or changing the sender's name. Cone prompt for the recipient's name, or names, and send the messages without changing the message's headers in any way (additional headers may be added by the mail server, of course).


Copy the current message to another folder. Cone temporarily goes back to the folder listing screen. Highlight the destination folder with the cursor and press ENTER.


Mark the current message for deletion. The message is not actually deleted. It is marked for deletion by the expunge command.


Assign an external command to a function key, or remove an existing external command function key assignment. See External commands, below.


Run the external command assigned to the given function key. The external command receives a copy of the current message on its standard input. See External commands, below.


Forwards the current message. Cone opens a screen where a new message may be written. The current message is either saved as an attachment to the new message, or is quoted in the new message's text (Cone prompts to choose one or the other before opening the new message screen).


Jump elsewhere in this folder. Scrolling through a large folder may be a tedious process. This option prompts for a message number, and moves the cursor to that message, scrolling the display, if necessary.

L, or <

This option closes the folder index screen, and returns to the folder listing screen.


Pressing M closes this screen, and opens the Main Menu screen.


Move the current message to another folder. This is similar to the Copy command, except that the message is removed from the current folder after it's succesfully copied to the destination folder.


This option creates a reply to the current message. Cone may ask a few questions before creating a reply. Cone knows how to format replies in three different ways. Not every format reply is available with every message. No questions are asked when only one reply format is possible for the message. Cone asks when more than one reply format is available.

Proper selection of a reply format is only possible when the main menu's setup screen is initialized with all applicable E-mail addresses. The available reply formats are:

Reply to a mailing list

If one or more of the recipients of the original message are mailing list addresses, the reply is addressed to the mailing list addresses only, ignoring any sender or carbon-copy addresses.

Reply to all

If the message is addressed to or from more than one address, excluding the user's address, the reply is addressed to all original senders and recipients, except for the user's address.


The reply is addressed to the sending party.


Many mailing lists have [subject] automatically inserted into the subject line of all mailing list messages. Press S to hide/show the so-called blobs from the subject line of messages shown on the folder index screen. The subject line has limited display real estate, and removing the [blob] allows more of the meaningful subject to be viewed on this screen.


The space bar is an alternative way to flag or flag individual messages without using the ; command. SPACE flags or unflags the current message. It is still necessary to use ; in order to actually do something to all flagged messages.


T opens a submenu where a message may be tagged. Tagged messages are shown with a different background color. This is merely a visual aid for highlighting selected messages, and nothing more. A color-capable display is necessary for showing tagged messages.

The submenu lists nine available tags, selected by pressing a digit 1 through 9. 0 removes the existing tag on the current message. The colors for the tags are selected from those available on the current display. Some tags will share the same color if the current display has less than nine available colors, in addition to the default text color.

The names of each tag may be set by choosing the Setup selection from Cone's main menu. The default names of the first five tags are the same as message labels used by the Mozilla mail client. With most IMAP servers Cone and Mozilla will see each other's tagged/labeled messages (however Cone's colors are determined by the console's color palette, and may not necessary match the ones Mozilla uses for the same label). This requires additional IMAP server functionality that may not be implemented by some IMAP servers.


The opposite of the D command - removes the deleted mark from the current message.


This command opens the screen with a list of attachments to the current message. This is the View Attachment screen. It is a very simple screen: each attachment is listed, giving its MIME type (the type of the attachment), its approximate size, and the attachments's description, if provided.

Plain text attachments may be viewed individually, by pressing ENTER. Press S to download and save the highlighted attachment. Use I to return to the folder index screen, L to return to the folder listing screen, and M to go back to the main menu screen.

After downloading an attachment it may be optionally deleted, or removed from the message. Press D to delete the highlighted attachment. Pressing D does not delete the attachment immediately, it only marks the attachment for deletion. More than one attachment may be marked for deletion at the same time. Press X to permanently remove all attachments that are marked for deletion. Beforing pressing X, a marked attachment can be unmarked by pressing U. Once X is pressed all the deleted attachments are gone for good, and cannot be undeleted.


Only messages in local mail folders, IMAP folders, and POP3 maildrop folders may have their attachments removed. Messages in POP3 folders and NetNews folders cannot have their attachments removed.

When GnuPG is installed, highlighting an attachment that contains GPG/PGP keys and pressing ENTER imports the keys. Cone prompts for a confirmation, then runs GnuPG to import the attached keys. Some versions of Gnu require a special procedure for importing private keys. Cone's prompt has an explicit private key export option. With other versions of GnuPG this option doesn't matter. Selecting the default import option will import whatever keys were attached, public or private.

When running in an X-terminal, highlighting an image attachment and pressing ENTER displays the image in a separate window. This is done by running either Gnome's eog, or KDE's kview image viewer. Cone's manual page contains instructions for installing hooks for viewing other kinds of attachments, or using a different image viewer.


Pressing W opens the Write Message screen. This is the screen where a new message can be typed, and sent. Cone checks for any unfinished messages in the Draft folder, before opening this screen. If the Draft folder contains any messages, Cone offers an option to resume writing an unfinished message, instead of starting a new message. Cone automatically saves a backup copy of the current message being edited, at regular intervals, so that a backup copy can be recovered in the event that Cone is interrupted, or terminated, in a middle of editing a new message. If a backup copy exists, Cone announces the existence of an interrupted message, and prompts to resume writing the interrupted message. An interrupted message must be opened and either: sent, explicitly cancelled, or saved in the Draft folder; before another message can be written.


This is the Expunge command. All messages marked for deletion are permanently removed from the folder.

External commands

An external command is any arbitrary command that Cone runs as a child process. The external command reads a copy of an email message on its standard input. The external command may take any arbitrary action with this email message, Cone doesn't care. This is a mechanism for integrating Cone with some custom mail processing code. Cone takes care of downloading an email message from a mailbox, and delivers it to an external command.


The external command must consume and read the email message from its standard input. If Cone detects that the external command did not read the entire message before it terminates, Cone assumes that the external command crashed, and reports an error. Note that the message is sent via a pipe, and Cone may not reliably detect a premature external command termination when the email message is small and fits into the internal pipe buffer.

An external command may be assigned to any available keyboard function key. Different commands may be assigned to different function keys. Press E then a function key. If the function key is already assigned to an external command, Cone asks for a confirmation to remove the existing assignment. Otherwise, Cone asks for a short 1-2 word command name. This is a descriptive label that gets shown at the bottom of the screen, next to the function key name, together with all other hotkeys. Press Enter after typing in the label, then type out the external command. Cone passes the entered command, verbatim, to the system shell to execute.


Some environments and desktops may reserve certain function keys for their own use. The Gnome desktop, for example, uses F1 as an application help function. Reserved function keys are not available to Cone, however there's no way for Cone to know whether or not a given function key is available for its use. When Cone may be used in multiple environments or desktops, care should be taken to assign external commands to function keys that are available in all environments.

Cone expects the external command to read its email message from standard input, finish up whatever it does with this message, and promptly terminate. Cone stops and waits for the external command to terminate, before it proceeds. Cone stops responding to any user input until the external command terminates. However, Cone still remains in control of the display. The external command should have its standard output and standard error redirected, otherwise its output will corrupt the terminal display.

Searching messages

Pressing ; on the folder index screen brings up an extensive sequence of options to enter a criteria that's used to search messages. After the search criteria is specified, messages that meet the search criteria are shown as flagged (highlighted, and preceded by a * or a checkmark). Messages that meet the search criteria can be quickly located by pressing the cursor left/right keys, which move the cursor to the previous or the next flagged message.

Requesting a search when some messages are already flagged shows an additional prompt:

B - Broaden search

Searches the remaining messages that are not already flagged. Any messages that meet the search criteria are also flagged. Existing messages that are already flagged remain flagged. The final result is that messages which meet both the new search criteria and the previous search criteria(s) are flagged.

N - Narrow search

Searches only messages that are already flagged. Flagged messages that meet the search criteria remain flagged. Messages that don't are unflagged.


Run an external command assigned to the given function key. See External commands for more information. The external command gets invoked once for each flagged message, so if ten messages are flagged, the external command gets invoked ten times in a row, once for each flagged message.

C - Copy flagged

Copy flagged messages to another folder. Cone temporarily goes back to the folder listing screen. Highlight the destination folder with the cursor and press ENTER.

D - Delete selected

No more searching is done. All flagged messages are marked as deleted (but not actually removed, use the eX command to do that).

O - Move flagged

Moves flagged messages to another folder. This is similar to the Copy command, except that the messages are removed from the current folder after they're succesfully copied to the destination folder.

R - Reset selected

No more searching is done. All flagged messages are unflagged.

U - Undelete selected

No more searching is done. All flagged messages that are marked as deleted have the deleted mark removed.

Search criteria
A - select all

Press A to select all available messages.

! - not

Press ! to logically reverse the following search criteria. Thus, if the entered search criteria was Search the From header for the actual search will find messages where the From header does NOT contain this text.

D - search by date

A date-related search. Additional prompts follow, described below.

S - search by status

A status-related search. Each message has several status flags that define whether the message is a new message, a deleted message, a replied message, and so on. Selecting a status search shows three options: Deleted, Unread, and Replied, to search for all deleted, unread, or replied messages, respectively.

T - search by text

A text-based search, search for messages that contain (or don't contain) a given text string. Additional prompts follow, that further refine what kind of text to search for.

Z - search by size

Search for messages that are bigger or smaller than a certain size. Select Larger than or Smaller than at the next prompt, then enter the target message size, in bytes, and press ENTER to search.

Date-based searches

A date-based search brings up additional prompts that specify the nature of the search. There are two dates that are associated with every message: the sent date, when the message was sent; and the received date, when the message was received.

The sent date is obtained from the message's Date: header. The received date is obtained from the mail server (or from the timestamp on the local mailbox).

The first prompt enters which date is searched for:

  1. Messages that were sent before the given date.

  2. Messages that were the sent on the given date.

  3. Messages that were the sent since (on, or after) the given date.

  4. Messages that were received before the given date.

  5. Messages that were the received on the given date.

  6. Messages that were the received since (on, or after) the given date.

The actual date is entered interactively. It starts with today's date. Press + or - to advance the shown date to the next or the following date. Press [ or ] to advance the shown date by a month. Press < or > to advance the shown date by a month. Press the space bar to accept the shown date, and search for messages.


Date-based searches are not currently implemented for NetNews newsgroups.

Text-based searches

Selecting a text-based search shows a wealth of options:

S - subject

Search the contents of the Subject: header.

F - from

Search the contents of the From: header.

T - to

Search the contents of the To: header.

C - cc

Search the contents of the Cc: header.

B - bcc

Search the contents of the Bcc: header.

H - specific header

Searches for the given text in some other header. The next prompt asks for the header's name.

O - contents

Search the contents of the message for the given text.

A - anywhere

Search the given text anywhere - headers or contents.

Enter the text to search for after selecting one of these options, and press ENTER to perform the search.


Efficient searching is implemented for local mail, and IMAP/SMAP mailboxes only. NetNews servers' searching capabilities are very limited, and POP3 servers have no search facilities whatsoever. In all cases, searching for message status flags is supported, since message status flags are always cached locally.

Only message headers of NetNews folders may be searched, and only English characters can be used as a search string. Some older NetNews servers may not have any searching ability whatsoever. Searching of message contents is not supported. Searching by message size, or message's date is not supported either.

Searching of POP3 folders is also not very efficient, although the search text is not limited to English characters only. POP3 folder search is accomplished by downloading the complete headers of each message, and searching it manually. Downloaded headers are not cached. The headers are also downloaded when searching by message's date. Searching by message size, or message's date is not supported for POP3 folders.

Watching Threads

Pressing A displays the following prompt: Watch thread up to A days, B-deep replies? (Y/N). The initial values for A and B are taken from the setup screen. Press D or R to adjust the defaults, if desired.

Answering the prompt with Y will watch the currently highlighted message, and any new replies to it. The highlighted message's subject will be shown with a highly-visible character (or the o character on some terminals). New replies to the watched message will also be automatically marked in the same fashion.


Any existing replies to the watched message are not automatically marked. Only future replies to the message will be automatically marked for watching.

Thread-watching is mostly useful with large NetNews newsgroups. A single, watched, conversation thread can be easily identified even in a very active newsgroup; however thread-watching can also be used with regular mail folders (with some limitations as noted below).

NetNews threads are famous for quickly diverging off-topic, so Cone's thread-watching future quietly turns itself off, after a while. There's very little uses in continuing to monitor a thread that began talking about the merits of organic food, but then ended up becoming a heated discussion about psychological problems of the Hollywood elite.

The initial default settings will watch for replies for up to fourteen days, or five levels of follow-ups, whichever comes first. That meaning that a reply to a reply to a reply to a reply to a reply of a watched message will still be shown as part of a watched thread, but its own reply will not be. There is no limit on the number of watched replies to the initial message, or to any of the five subsequent levels of follow-ups, as long as they arrive within the time-enforced limit.


After coming back from a 15-day vacation, and opening a folder which used to have watched threads, none of the new messages will be marked for watching, even though they arrived before the 14-days were up. Well, you just had a nice 15-day vacation, why do you care about some stale flame war that started more than two weeks ago?

The last level of watched followups will be marked with a different character, a (or * as shown by some terminals), instead of the character. This is a visual cue to evaluate whether this subthread is still worth following. If so, the message can be manually re-watched. Highlighting the message and choosing this option will renew the interest in this thread for another round of followups (however other branches of the original thread will still expire as usual, unless they are also renewed).

Selecting this option again on a message that's already being watched will prompt to turn off watching for more replies. The message will no longer appear watched, and any future replies to the message will not be watched.


Any existing replies that are watched will continue to be watched, even though the original message is no longer being watched.

Watching E-mail threads

Thread watching is designed primarily to be used with NetNews newsgroups. The mechanism by which replies are selected for watching is quick, and simple. NetNews messages typically carry robust threading metadata, and even if there's a NetNews hiccup, and messages come in out of order, all eligible replies should still be correctly selected for watching. There is a very small chance that a very severe NetNews disruption will result in a failure to catch watched replies. However, messages would probably come in so wildly out of sequence that the thread is not likely to remain readable even if all watched replies were properly tagged, whenever they arrive.

Thread watching is not limited to NetNews newsgroups. E-mail threads may also be selected for watching. However, E-mail messages tend to have far less threading metadata than their NetNews counterparts. A disruption in incoming E-mail is more likely to result in missed replies, than a NetNews disruption. However, E-mail disruptions, on average, tend to occur far less often than NetNews disruptions, so everything tends to come out even.

Additionally, many modern E-mail clients now include the same full threading metadata as NetNews clients (Cone always includes complete threading metadata with every outgoing message, NetNews or E-mail). This issue continues to be less and less relevant, as time goes on.

Checking for new mail

The semantics of checking for new mail varies slightly, depending on the mail account. With SMAP-based mail account, and with most IMAP mail accounts, new mail in the current folder is shown immediately. If messages in the folder are shown in the order they were added to the folder, new mail will naturally appear at the end of folder. If messages are shown in a different sorting order, new messages will be shown wherever they should appear in accordance with the current sort order. Most IMAP mail accounts show new mail as soon as it is received. Some IMAP mail accounts do not report new mail immediately after it is delivered to the mail folder (this depends on the IMAP server software). Cone checks for new mail at regular intervals, and new received messages will show up after the next check for new mail.

New mail delivered to a local mbox folder will usually be shown when Cone checks for new mail, at regularly-scheduled intervals. New mail delivered to a local maildir will also usually appear only after Cone checks for new mail. On most Linux and SGI systems, and on any other system that has the File Access Monitor daemon running, new mail will be reported immediately.

In all cases, move to the last message in the folder, and use the cursor down key to have Cone explicitly checks for new mail. New mail in a POP3 folder will only be shown after an explicit new mail check (Cone does not check for new mail in POP3 folders by itself).


There's a bug in INN 2.5, which should be fixed in 2.5.3. The affected versions of INN are 2.5.0 through 2.5.2. Any new messages in NetNews newsgroups will come up with a blank sender and subject.

Do not use the cursor down key to check for new messages in NetNews newsgroups, if the server is running the affected version of INN

In all cases, new mail will not be immediately shown after the folder index screen is closed. When the folder index screen is closed, the mail folder still remains opened until Cone opens another folder in the same mail account. Cone still regularly checks for new mail when the folder index screen is not being shown (except for POP3 accounts). New mail will be reported only when Cone checks for new mail, or when the folder index screen is reopened.

Concurrent changes to the current folder's contents

Most mail accounts allow the same folder to be opened by multiple applications. When Cone has a folder opened, another application might also have the same folder opened, and another application may be making changes to the folder, at the same time.

Generally speaking, new mail delivered to the folder, while it's opened by Cone, is one example of concurrent changes to the contents of the folder while it is opened. Other applications may make other kinds of changes to the folder's contents: changing a message's status (whether the message is unread, deleted, replied, tagged, and/or flagged); or removing a message from the folder. In general, changes by other applications are reported in the same manner that Cone reports new mail. If Cone reports new mail as soon as it is received, Cone will also report other kinds of changes to the folder's contents as soon as they occur. Otherwise, changes to the folder's contents are reported the next time Cone checks for new mail. An attempt to access a message that was removed by another application, but not yet reported, usually results in an error.