cone - Read and send E-mail messages
cone [-r] [-c directory]
Cone is a console newsreader and E-mail. It is an interactive program
for reading and sending E-mail messages. Cone is designed to be
intuitive and easy to learn. Starting Cone for the first time displays
two links: one for the default system mailbox, and a second link to a
quick online tutorial. The online tutorial provides a brief overview of
using Cone for reading and sending E-mail.
Pressing Q on most screens exits Cone. Cone tries to gracefully log
out and shut down all server connections. If Cone cannot log out of a
remote server because the remote server is down, press CTRL-C (after Q
to terminate Cone).
Use CTRL-Z to temporarily suspend Cone and drop back to the shell
prompt. Cone remains suspended in the background, and may be restarted
by using the shell´s fg command.
Connections to remote mail servers may be disconnected for
inactivity if Cone remains suspended for a prolonged period of
time. When suspended, Cone cannot maintain any active connections
to remote mail servers.
The -c option names a directory where Cone saves its configuration
files, and defaults to $HOME/.cone. The configuration directory will be
created, if necessary.
The -r option recovers a backup copy of Cone´s configuration file. This
option is primarily used when remote configuration is enabled, but the
folder that contains Cone´s configuration on a remote server was
deleted, or is not available. In all cases, Cone makes a daily local
configuration file backup. The -r option searches for local
configuration file backups, and offers an option to restore the backup
Reading local mail with Cone
Cone reads local mail from either maildirs (the preferred format) or
mailbox files (or "mboxes"). When mboxes are used, Cone does not read
the system mailbox file directly (usually /var/spool/something). All
messages in the system mailbox are automatically moved to $HOME/Inbox,
which is then accessed as if it was the system mailbox. Starting Cone
for the first time on an mbox-based system automatically copies all
existing mail from the system mailbox file to $HOME/Inbox.
This is an intentional design choice. Normal user application cannot
create new files in /var/spool; all they can do is read the mailbox
file from /var/spool. Therefore, the only way to update the mailbox
file is by rewriting it from scratch (more or less). While the mailbox
file is in the process of being rewritten, if the Cone process is
interrupted, or killed, the resulted in a corrupted system mailbox.
There are way to minimize this vulnerability, but it cannot be
eliminated completely. Some Linux kernels use an “OOM killer” that may
terminate any process when the system memory is low. There is no way to
completely prevent corrupted system mailbox files on those kernels.
Cone uses an alternative way of updating mboxes. Cone updates mboxes
by creating a new mbox file separately, then replacing the original
mbox file with the new version. Unfortunately this cannot be done with
the system mailbox file, because of the restricted access rights on the
system spool directory. To solve this problem Cone automatically copies
the system mailbox file to $HOME/Inbox, each time the system mailbox
file is opened and whenever new mail is available.
Viewing MIME attachments
Cone displays text and simple HTML content by itself. Other kinds of
attachments may be viewed by using a helper script. Cone invokes a
helper script to open a MIME attachment. The helper script´s name is
“TYPE.SUBTYPE.filter”, where “TYPE” and “SUBTYPE” corresponds to the
MIME type and subtype, accordingly. Cone looks for helper scripts in
$HOME/.cone (or the directory specified by -c) and in /usr/share/cone.
For example, a helper script named “IMAGE.GIF.filter”, if installed, is
invoked to process image/gif MIME attachments.
Cone runs each helper script twice:
TYPE.SUBTYPE.filter check type/subtype
When the first argument is “check”, the helper script should
terminate with a zero exit code if it is willing to process an
attachment whose MIME type is specified by the second argument. A
script or a program that´s has multiple “TYPE.SUBTYPE.filter” links
may use the second argument to identify the attachment´s mime type.
If the helper script is unable to process the attachment, at this
time, it should terminate with a non-zero exit code.
The default helper script for image attachments terminates with a
non-zero exit code if the DISPLAY environment variable is not
initialized. When invoked from an X-Windows terminal, image
attachments will be automatically displayed; and image attachments
are ignored otherwise on non-graphical consoles.
TYPE.SUBTYPE.filter filter type/subtype filename
If the helper script initially terminates with a zero exit code, it
will be invoked again after the MIME attachment is downloaded and
decoded. The first argument will be “filter”, and the attachment´s
filename is specified by the third argument.
This is a temporary file, whose extension will not necessary be
the file extension associated with this MIME type.
The helper script should read and process the file specified by the
third argument. Cone interprets anything the helper script writes
to standard output as HTML.
Cone waits until the helper script terminates before displaying
the rest of the message. Most helper scripts should run in the
background. However, note that Cone removes the temporary file
when the original message is closed; the temporary file may be
removed any time after the helper script terminates. The helper
script should make its own private copy of the file, if
Cone has limited ability to activate URLs in HTML messages. Cone
handles “mailto:” URLs by itself. For other URLs Cone runs
/usr/share/cone/method.handler with the URL passed as an argument.
Cone installs http.handler (hard linked to https.handler). This script
checks if firefox or mozilla binaries are found in the current PATH,
and runs them.
Cone also looks method.handler in $HOME/.cone (or the directory
specified by -c) in addition to /usr/share/cone.
Configuration files, and other application data. May be modified by
the -c option.
Default helper scripts distributed with Cone.
[FIXME: source] 10/31/2009