elm
Start and manage email messages
TLDR
Initialize an Elm project, generates an elm.json file
Start interactive Elm shell
Compile an Elm file, output the result to an index.html file
Compile an Elm file, output the result to a JavaScript file
Start local web server that compiles Elm files on page load
Install Elm package from
SYNOPSIS
elm [-a] [-d] [-f mailbox] [-h] [-i] [-k] [-m] [-s subject] [-v] [-z] [user]
PARAMETERS
-a
Starts elm directly into the alias menu, allowing management of email aliases.
-d
Enables debugging mode, logging detailed information about elm's operations.
-f mailbox
Specifies an alternative mailbox file to read instead of the default system mail spool or user's inbox.
-h
Displays a brief help message with command-line options and exits.
-i
Ignores the user's ~/.elm/elmrc configuration file, causing elm to use system defaults.
-k
Attempts to use function keys for navigation and commands, if compiled with support for them.
-m
Prevents elm from 'touching' (modifying the access time) of the system mail spool file.
-s subject
Sets the subject line for a new message directly upon launching elm for composing mail.
-v
Displays the version information of elm and exits.
-z
Exits immediately if there is no new mail in the inbox, instead of entering the interactive session.
user
If a username is provided, elm attempts to send a new mail message to that specified user immediately.
DESCRIPTION
elm (ELM is short for "ELectronic Mail") is an old but historically significant terminal-based email client for Unix-like operating systems. It provides a full-screen, menu-driven interface for reading, composing, sending, and managing electronic mail.
Designed for character-based terminals, elm allows users to navigate their inbox, view messages, reply to senders, forward mail, save messages, and organize their mailbox using a series of single-key commands. While less prevalent in modern computing environments, elm was a widely used and popular choice in the 1980s and 1990s, predating the widespread adoption of graphical user interfaces and webmail. It offered a robust set of features for its time, including alias management, spell checking, and customizable options through its elmrc configuration file. Its intuitive (for the era) full-screen interface was a significant improvement over previous line-oriented mail tools.
CAVEATS
elm is largely considered obsolete and is not actively developed. It lacks native support for modern email protocols like IMAP or SMTP with SSL/TLS, requiring external tools (like fetchmail and sendmail/postfix) for retrieving and sending mail in contemporary setups.
Its availability on modern Linux distributions is limited, often requiring manual compilation or installation from older repositories. Security vulnerabilities, while less critical for a local client, might exist due to its age and lack of maintenance. Users accustomed to modern graphical or feature-rich text-based clients like mutt may find its interface and capabilities rudimentary.
INTERACTIVE INTERFACE
elm operates with a main index screen listing messages, from which users can select messages to read, compose new ones, or perform actions using single-character commands (e.g., 'r' for reply, 'd' for delete, 's' for save). It emphasizes a simple, direct interaction model suitable for low-bandwidth connections and character-based terminals.
CONFIGURATION
User-specific preferences and customizations are managed in the ~/.elm/elmrc file. This file allows customization of various aspects, including display options, editor paths, and default mailboxes, providing flexibility to adapt the client to individual workflows.
HISTORY
elm was originally created by Dave Taylor in 1986 at the University of Illinois at Urbana-Champaign (UIUC). It quickly gained popularity as one of the first full-screen, menu-driven mail user agents for Unix systems, offering a significant usability improvement over previous line-oriented mail programs.
Its development continued through the late 1980s and 1990s, becoming a staple in many academic and corporate Unix environments. While its usage declined with the advent of graphical email clients and the rise of more advanced text-based alternatives like mutt and alpine, elm remains a historically important piece of software that influenced the design of many subsequent terminal-based email clients.