terminal e-mail client and e-mail client library https://meli.delivery
 
 
 
 
 
 
Go to file
Manos Pitsidianakis 38bca8f8bc
Run cargo lints / Lint on ${{ matrix.build }} (linux-amd64, ubuntu-latest, stable, x86_64-unknown-linux-gnu) (pull_request) Successful in 7m52s Details
Run Tests / Test on ${{ matrix.build }} (linux-amd64, ubuntu-latest, stable, x86_64-unknown-linux-gnu) (pull_request) Successful in 12m42s Details
docs/meli.conf.5: mention use_oauth2=true for gmail oauth2
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-03-17 14:07:07 +02:00
.cargo Enable "static" build for C library dependencies by default 2023-11-22 15:26:16 +02:00
.gitea CI: fix lints.yaml rustup install step 2024-03-15 11:42:58 +02:00
benches melib: remove BackendOpGenerator 2019-07-18 20:14:14 +03:00
contrib melib/imap: implement OAUTH2 authentication 2020-11-24 14:28:28 +02:00
debian Update all instances of old domains with meli-email.org 2024-03-10 21:38:12 +02:00
fuzz Cargo-sort all Cargo.toml files 2023-12-10 15:33:10 +02:00
meli docs/meli.conf.5: mention use_oauth2=true for gmail oauth2 2024-03-17 14:07:07 +02:00
melib melib/imap: turn some sync connections to unsync 2024-03-16 23:47:30 +02:00
scripts Various manpage touchups and URL updates 2024-03-10 21:34:46 +02:00
tools Update all instances of old domains with meli-email.org 2024-03-10 21:38:12 +02:00
.gdbinit small fixes 2019-11-21 15:44:18 +02:00
.git-blame-ignore-revs Add .git-blame-ignore-revs file 2023-12-09 21:30:02 +02:00
.gitignore chore: Add `.idea` (CLion) to `.gitignore`. 2023-05-17 09:22:12 +00:00
BUILD.md Update README.md, DEVELOPMENT.md and create BUILD.md 2024-01-20 12:09:34 +02:00
CHANGELOG.md Update all instances of old domains with meli-email.org 2024-03-10 21:38:12 +02:00
COPYING mailbox: add threads 2019-06-10 19:11:47 +03:00
Cargo.lock melib/jmap: Use Url instead of String in deserializing 2024-02-13 14:13:53 +02:00
Cargo.toml melib: update to 2021 edition 2023-09-13 18:47:00 +03:00
Cross.toml Add Cross.toml for aarch64-unknown-linux-gnu builds 2023-09-05 15:33:28 +03:00
DEVELOPMENT.md Update README.md, DEVELOPMENT.md and create BUILD.md 2024-01-20 12:09:34 +02:00
Makefile melib/imap: remove unused imap_trace! and fix comp 2024-03-10 13:08:58 +02:00
README.md README.md: update codeberg.org URL 2024-02-21 19:54:50 +02:00
cliff.toml Update all instances of old domains with meli-email.org 2024-03-10 21:38:12 +02:00
rustfmt.toml Clippy fixes 2023-04-30 20:47:53 +03:00

README.md

meli Established, created in 2017 Minimum Supported Rust Version GitHub license Crates.io IRC channel

BSD/Linux/macos terminal email client with support for multiple accounts and Maildir / mbox / notmuch / IMAP / JMAP / NNTP (Usenet).

Try an old online interactive web demo powered by WebAssembly!

Table of contents:

Install

Build

Run cargo build --release --bin meli or make.

For detailed building instructions, see BUILD.md

Quick start

# Create configuration file in ${XDG_CONFIG_HOME}/meli/config.toml:
$ meli create-config
# Edit configuration in ${EDITOR} or ${VISUAL}:
$ meli edit-config
# Optionally, install manual pages if installed via cargo:
$ meli install-man
# Ready to go.
$ meli

See a comprehensive tour of meli in the manual page meli(7).

See also the Quickstart tutorial online.

After installing meli, see meli(1), meli.conf(5), meli(7) and meli-themes(5) for documentation. Sample configuration and theme files can be found in the meli/docs/samples/ subdirectory. Manual pages are also hosted online. meli by default looks for a configuration file in this location: ${XDG_CONFIG_HOME}/meli/config.toml.

You can run meli with arbitrary configuration files by setting the ${MELI_CONFIG} environment variable to their locations, i.e.:

MELI_CONFIG=./test_config cargo run

See meli(7) for an extensive tutorial and meli.conf(5) for all configuration values.

Main view screenshot Compact main view screenshot Compose with embed terminal editor screenshot
Main view Compact main view Compose with embed terminal editor

Supported E-mail backends

Protocol Support
IMAP full
Maildir full
notmuch full1
mbox read-only
JMAP functional
NNTP / Usenet functional

E-mail submission backends

  • SMTP
  • Pipe to shell script
  • Server-side submission when supported

Non-exhaustive list of features

  • TLS
  • email threading support
  • multithreaded, async operation
  • optionally run your editor of choice inside meli, with an embedded xterm-compatible terminal emulator
  • plain text configuration in TOML
  • ability to open emails in UI tabs and switch to them
  • optional sqlite3 index search
  • override almost any setting per mailbox, per account
  • contact list (+read-only vCard and mutt alias file support)
  • forced UTF-8 (other encodings are read-only)
  • configurable shortcuts
  • theming
  • NO_COLOR support
  • ascii-only drawing characters option
  • view text/html attachments through an html filter command (w3m by default)
  • pipe attachments/mail to stuff
  • use external attachment file picker instead of typing in an attachment's full path
  • GPG signing, encryption, signing + encryption
  • GPG signature verification

HTML Rendering

HTML rendering is achieved using w3m by default. You can use the pager.html_filter setting to override this (for more details you can consult meli.conf(5)).

Documentation

See a comprehensive tour of meli in the manual page meli(7).

See also the Quickstart tutorial online.

After installing meli, see meli(1), meli.conf(5), meli(7) and meli-themes(5) for documentation. Sample configuration and theme files can be found in the meli/docs/samples/ subdirectory. Manual pages are also hosted online.

meli by default looks for a configuration file in this location: ${XDG_CONFIG_HOME}/meli/config.toml

You can run meli with arbitrary configuration files by setting the ${MELI_CONFIG} environment variable to their locations, or use the [-c, --config] argument:

MELI_CONFIG=./test_config meli

or

meli -c ./test_config

  1. there's no support for searching through all email directly, you'd have to create a mailbox with a notmuch query that returns everything and search inside that mailbox. ↩︎