All checks were successful Verify DCO / Verify DCO signoff on commit messages (linux-amd64, ubuntu-latest) (pull_request)Successful in 24s Build and run Tests / Run tests (amd64, linux-amd64, ubuntu-latest, stable, x86_64-unknown-linux-gnu) (pull_request)Successful in 4m5s Build and run Tests / Run tests (arm64, linux-arm64, ubuntu-latest-arm64, stable, aarch64-unknown-linux-gnu) (pull_request)Successful in 4m35s Run cargo lints / Run lints (linux-amd64, ubuntu-latest, stable, x86_64-unknown-linux-gnu) (pull_request)Successful in 4m49s Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is> | ||
---|---|---|
.gitea | ci: remove obsolete test exclusion | |
benches | melib/backend: remove BackendOp | |
contrib | contrib/README.md: elaborate a bit about mailto | |
debian | Bump version to 0.8.10 | |
fuzz | Make unicode-segmentation a hard dependency | |
meli | conf: impl DotAddressable for ComposingSettings | |
melib | melib/nntp: run rustfmt | |
scripts | scripts/rfc_to_rs_mdoc.py: reformat | |
tools | tools: fix lints and compilation | |
.gdbinit | small fixes | |
.git-blame-ignore-revs | Add .git-blame-ignore-revs file | |
.gitignore | chore: Add.idea (CLion) to.gitignore . | |
.mailmap | Small repo cleanups | |
BUILD.md | meli/README.md: Add cargo features section | |
Cargo.lock | Bump version to 0.8.10 | |
Cargo.toml | melib: update to 2021 edition | |
CHANGELOG.md | Bump version to 0.8.10 | |
cliff.toml | scripts: add generate_release_changelog_entry.sh | |
codemeta.json | Bump version to 0.8.10 | |
COPYING | mailbox: add threads | |
Cross.toml | Add Cross.toml for aarch64-unknown-linux-gnu builds | |
deny.toml | Add cargo-deny configuration file deny.toml | |
DEVELOPMENT.md | DEVELOPMENT.md: document DCO requirement | |
Makefile | Makefile: fix some minor logic/UX issues | |
README.md | README.md: mention matrix channel | |
rustfmt.toml | Clippy fixes |
BSD/Linux/macos terminal email client with support for multiple accounts and Maildir / mbox / notmuch / IMAP / JMAP / NNTP (Usenet).
Try anold, outdated but online and interactive web demo powered by WebAssembly!
#meli
on OFTC IRC, or,#meli:matrix.org
Matrix bridge (if operational)Table of contents:
Crates.io withcargo
on all supported systems and architectureshttps://crates.io/crates/meli
cargo install meli
Install latest development snapshot from git repository:
cargo install --git https://git.meli-email.org/meli/meli.git meli
Official Debian (and Debian derivatives) packageshttps://packages.debian.org/trixie/meli
apt install meli
AUR (archlinux)https://aur.archlinux.org/packages/meli
OpenSUSEhttps://build.opensuse.org/package/show/openSUSE:Factory/meli
Alpine Linuxhttps://pkgs.alpinelinux.org/packages?name=meli
apk install meli
NetBSD with pkgsrchttps://pkgsrc.se/mail/meli
OpenBSD portshttps://openports.pl/path/mail/meli
macOS with
Homebrewhttps://formulae.brew.sh/formula/meli
brew install meli
MacPortshttps://ports.macports.org/port/meli/
port install meli
Nix with Nixpkgshttps://search.nixos.org/packages?query=meli
Pre-built debian package, static binaries foramd64
,arm64
architectures
Runmake
orcargo build --release --bin meli
.
Seemake help
output for information on how to use theMakefile
.
For detailed building instructions, seeBUILD.md
meli
supports opting in and out of features at compile time with cargo features.
The contents of thedefault
feature are:
default=["sqlite3","notmuch","smtp","dbus-notifications","gpgme","cli-docs","jmap","static"]
A list of all the features and a description for each follows:
Feature flag | Dependencies | Notes |
---|---|---|
notmuch | maildir feature | Provides thenotmuch backend |
jmap | http feature,url crate withserde feature | Provides theJMAP backend |
smtp | tls feature | Integrated asyncSMTP client |
sqlite3 | rusqlite crate withbundled-full feature | Used in caches |
sqlite3-static | rusqlite crate withbundled-full feature | Same assqlite3 feature but provided for consistency and in casesqlite3 feature stops bundling libsqlite3 statically in the future. |
smtp-trace | smtp feature | Connection trace logs on thetrace logging level |
gpgme | GPG use by dynamically loadinglibgpgme.so | |
tls-static | native-tls crate withvendored feature | Links withOpenSSL statically where it's used |
http-static | isahc crate withstatic-curl feature | Links withcurl statically |
dbus-notifications | notify-rust dependency | Uses DBus notifications |
dbus-static | notify-rust dependency and enableds itsd_vendored feature | Includes the dbus library statically. |
cli-docs | flate2 dependency | Includes the manpage documentation compiled by eithermandoc orman binary to plain text inmeli 's command line. Embedded documentation can be viewed with the subcommandmeli man [PAGE] |
libz-static | libz-sys dependency and enables itsstatic feature | Allows for the transitive dependency libz (fromcurl ) to be linked statically. |
static | enablestls-static ,http-static ,sqlite3-static ,dbus-static ,libz-static features |
# 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# You can read any manual page with the CLI subcommand `man`:$ meli man meli.7# See help output for all options and subcommands.$ meli --help
See a comprehensive tour ofmeli
in the manual pagemeli(7)
.
See also theQuickstart tutorial online.
After installingmeli
, seemeli(1)
,meli.conf(5)
,meli(7)
andmeli-themes(5)
for documentation.Sample configuration and theme files can be found in themeli/docs/samples/
subdirectory.Examples for configuration file settings can be found inmeli.conf.examples(5)
Manual pages are alsohosted 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
Seemeli(7)
for an extensive tutorial andmeli.conf(5)
for all configuration values.
Main view | Compact main view | Compose with embed terminal editor |
---|---|---|
![]() | ![]() | ![]() |
Protocol | Support |
---|---|
IMAP | full |
Maildir | full |
notmuch | full1 |
mbox | read-only |
JMAP | functional |
NNTP / Usenet | functional |
NO_COLOR
supportHTML rendering is achieved usingw3m by default.You can use thepager.html_filter
setting to override this (for more details you can consultmeli.conf(5)
).
See a comprehensive tour ofmeli
in the manual pagemeli(7)
.
See also theQuickstart tutorial online.
After installingmeli
, seemeli(1)
,meli.conf(5)
,meli(7)
andmeli-themes(5)
for documentation.Sample configuration and theme files can be found in themeli/docs/samples/
subdirectory.Manual pages are alsohosted 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
there's no support for searching through all email directly, you'd have tocreate a mailbox with a notmuch query that returns everything and searchinside that mailbox.↩︎