LinuxCommandLibrary

elm

Start and manage email messages

TLDR

Initialize an Elm project, generates an elm.json file

$ elm init
copy

Start interactive Elm shell
$ elm repl
copy

Compile an Elm file, output the result to an index.html file
$ elm make [source]
copy

Compile an Elm file, output the result to a JavaScript file
$ elm make [source] --output=[destination].js
copy

Start local web server that compiles Elm files on page load
$ elm reactor
copy

Install Elm package from
$ elm install [author]/[package]
copy

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.

SEE ALSO

mail(1), mailx(1), mutt(1), alpine(1)

Copied to clipboard