MELI(1) | General Commands Manual | MELI(1) |
NAME¶
meli
— terminal
e-mail client μέλι is the
Greek word for honey
SYNOPSIS¶
meli |
[--help | -h ]
[--version | -v ]
[--config path]
|
DESCRIPTION¶
meli
is a terminal mail client aiming for
extensive and user-friendly configurability.
^^ .-=-=-=-. ^^ ^^ (`-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ ( `-=-=-=-(@)-=-=-` ) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-`) `-=-=-=-=-` ^^
STARTING WITH meli¶
When launched for the first time, meli
will search for its configuration directory,
$XDG_CONFIG_HOME/meli/. If it doesn't exist, you
will be asked if you want to create one and presented with a sample
configuration file
($XDG_CONFIG_HOME/meli/config.toml) that includes
the basic settings required for setting up accounts allowing you to copy and
edit right away. See meli.conf(5) for the available
configuration options.
At any time, you may press ⟨?⟩ (shortcuts.general.toggle_help) for a searchable list of all available actions and shortcuts, along with every possible setting and command that your version supports.
Each mailbox may be viewed in 4 modes:
- Plain views each mail individually,
- Threaded shows their thread relationship visually,
- Conversations collapses each thread of e-mails into a single entry,
- Compact shows one row per thread.
If you're using a light color palette in your terminal, you should set theme = light in the terminal section of your configuration. See meli-themes(5) for complete documentation on user themes.
See meli(7) for a more detailed tutorial on
using meli
.
SHORTCUTS¶
See meli.conf(5) SHORTCUTS for shortcuts and their default values.
VIEWING MAIL¶
Open attachments by typing their index in the attachments list and
then ⟨a⟩
(shortcuts.envelope_view.open_attachment).
meli
will attempt to open text inside its pager, and
other content via xdg-open
. Press
⟨m⟩ (shortcuts.envelope_view.open_mailcap)
instead to use the mailcap entry for the MIME type of the attachment, if
any. See FILES for the location of the
mailcap files and mailcap(5) for their syntax. You can
save individual attachments with the
save-attachment
INDEX path-to-filecommand. INDEX is the attachment's index in the listing. If the path provided is a directory, the attachment is saved with its filename set to the filename in the attachment, if any. If the 0th index is provided, the entire message is saved. If the path provided is a directory, the message is saved as an eml file with its filename set to the messages message-id.
SEARCH¶
Each e-mail storage backend has a default search method assigned.
IMAP uses
the SEARCH command,
notmuch
uses libnotmuch and Maildir/mbox performs a slow linear
search. It is advised to use a search backend on
Maildir/mbox accounts. meli
, if
built with sqlite3, includes the ability to perform full text search on the
following fields:
From,
To,
Cc,
Bcc,
In-Reply-To,
References,
Subject
and Date.
The message body (in plain text human readable form) and the flags can also
be queried. To enable sqlite3 indexing for an account set
search_backend to sqlite3 in the
configuration file and to create the sqlite3 index issue command:
reindex
ACCOUNT_NAMETo search in the message body type your keywords without any special formatting. To search in specific fields, prepend your search keyword with "field:" like so:
Boolean operators are or, and and not (alias: !) String keywords with spaces must be quoted. Quotes should always be escaped.
Important Notice about IMAP/JMAP¶
To prevent downloading all your messages from your IMAP/JMAP
server, don't set search_backend to
sqlite3. meli
will relay your
queries to the IMAP server. Expect a delay between query and response.
Sqlite3 on the contrary at reasonable mailbox sizes should have a non
noticeable delay.
QUERY ABNF SYNTAX¶
query = "(" query ")"
|from
|to
|cc
|bcc
|message_id
|in_reply_to
|references
|header
|all_addresses
|subject
|flags
|has_attachment
|query "or" query
|query "and" query
|not query
not = "not"
|"!"
has_attachment = "has:attachment"
|"has:attachments"
quoted = ALPHA / SP *(ALPHA / DIGIT / SP)
term = ALPHA *(ALPHA / DIGIT)
|DQUOTE quoted DQUOTE
tagname = term
flagval = "passed"
|"replied"
|"seen"
|"read"
|"junk"
|"trash"
|"trashed"
|"draft"
|"flagged"
|tagname
flagterm = flagval
|flagval "," flagterm
flags = "flag:" flag
|"flags:" flag
|"tag:" flag
|"tags:" flag
|"is:" flag
from = "from:" term
to = "to:" term
cc = "cc:" term
bcc = "bcc:" term
message_id = "message-id:" term
|"msg-id:" term
in_reply_to = "in-reply-to:" term
references = "references:" term
header = "header:" field_name "," field_value
field_name = term
field_value = term
all_addresses = "all-addresses:" term
subject = "subject:" term
FLAGS¶
meli
supports the basic maildir flags:
passed, replied, seen, trashed, draft and flagged. Flags can be searched
with the ‘flags:
’ prefix in a search
query, and can be modified by
flag set FLAG
and
flag unset FLAG
TAGS¶
meli
supports tagging in notmuch and
IMAP/JMAP backends. Tags can be searched with the
‘tags:
’ or
‘flags:
’ prefix in a search query, and
can be modified by
tag add TAG
and
tag remove TAG
(see meli.conf(5) TAGS, settings
colors
and ignore_tags
for
how to set tag colors and tag visibility)
COMPOSING¶
Opening the message Composer tab¶
To create a new mail message, press ⟨m⟩ (shortcuts.listing.new_mail) while viewing a mailbox. To reply to a mail, press ⟨R⟩ (shortcuts.envelope_view.reply). Both these actions open the mail composer view in a new tab.
Editing text¶
- Edit the header fields by selecting with the
arrow keys and pressing
⟨Enter⟩ (shortcuts.general.focus_in_text_field)
to enter
INSERT
mode and
Esc
key to exit. - At any time you may press
⟨e⟩ (shortcuts.composing.edit)
to launch your editor (see meli.conf(5) COMPOSING,
setting
editor_command
for how to select which editor to launch). - Your editor can be used in
meli
's embed terminal emulator by settingembed
to true in your composing settings (You can return tomeli
at any time by pressing ⟨Ctrl-Z⟩) - When launched, your editor captures all input until it exits or stops.
- To stop your editor and return to
meli
press ⟨Ctrl-z⟩ and to resume editing press theedit
command again.
Attachments¶
Attachments may be handled with the
add-attachment
,
remove-attachment
commands (see below).
Sending¶
Finally, pressing
⟨s⟩ (shortcuts.composing.send_mail)
will send your message according to your settings (see
meli.conf(5) COMPOSING, setting name
send_mail
). With no Draft or Sent mailbox,
meli
tries first saving mail in your INBOX and then
at any other mailbox. On complete failure to save your draft or sent message
it will be saved in your
tmp
directory instead and you will be notified of its location.
Drafts¶
To save your draft without sending it, issue
COMMAND close
and select 'save as
draft'.
To open a draft for further editing, select your draft in the mail
listing and press edit
.
CONTACTS¶
meli
supports three kinds of contact
backends:
- an internal format that gets saved under $XDG_DATA_HOME/meli/account_name/addressbook.
- vCard files (v3, v4) through the
vcard_folder
option in the account section. The path defined asvcard_folder
can hold multiple vCards per file. They are loaded read only. - a mutt(1) compatible alias file in the option
mutt_alias_file
See meli.conf(5) ACCOUNTS for the complete account contact configuration values.
MODES¶
- NORMAL
- is the default mode
- COMMAND
- commands are issued in COMMAND mode, by default started with ⟨:⟩ (shortcuts.general.enter_command_mode) and exited with ⟨Esc⟩ key.
- EMBED
- is the mode of the embed terminal emulator
- INSERT
- captures all input as text input, and is exited with
Esc
key.
COMMAND¶
Mail listing commands¶
set
plain | threaded | compact | conversations- set the way mailboxes are displayed
conversations | shows one entry per thread |
compact | shows one row per thread |
threaded | shows threads as a tree structure |
plain | shows one row per mail, regardless of threading |
sort
[subject | date] asc | desc- sort mail listing
subsort
[subject | date] asc | desc- sorts only the first level of replies.
go
n- where n is a mailbox prefixed with the n number in the side menu for the current account
toggle thread_snooze
- don't issue notifications for thread under cursor in thread listing
search
STRING- search mailbox with STRING query. Escape exits search results.
select
STRING- select threads matching STRING query.
clear-selection
- Clear current selection.
set
seen | unseen- Set seen status of message.
import
FILEPATH MAILBOX_PATH- Import mail from file into given mailbox.
copyto, moveto
MAILBOX_PATH- Copy or move to other mailbox.
copyto, moveto
ACCOUNT MAILBOX_PATH- Copy or move to another account's mailbox.
delete
- Delete selected entries.
export-mbox
FILEPATH- Export selected threads to mboxcl2 file.
create-mailbox
ACCOUNT MAILBOX_PATH- create mailbox with given path. Be careful with backends and separator sensitivity (eg IMAP)
subscribe-mailbox
ACCOUNT MAILBOX_PATH- subscribe to mailbox with given path
unsubscribe-mailbox
ACCOUNT MAILBOX_PATH- unsubscribe to mailbox with given path
rename-mailbox
ACCOUNT MAILBOX_PATH_SRC MAILBOX_PATH_DEST- rename mailbox
delete-mailbox
ACCOUNT MAILBOX_PATH- deletes mailbox in the mail backend. This action is irreversible.
Mail view commands¶
pipe
EXECUTABLE [ARGS]- pipe pager contents to binary
filter
EXECUTABLE [ARGS]- filter and display pager contents through command
filter
- select a filter from
pager.named_filters
configuration value (See meli.conf(5) PAGER for its syntax) list-post
- post in list of viewed envelope
list-unsubscribe
- unsubscribe automatically from list of viewed envelope
list-archive
- open list archive with
xdg-open
Composing mail commands¶
mailto
MAILTO_ADDRESS- Opens a composer tab with initial values parsed from the
mailto:
address. add-attachment
PATH- in composer, add PATH as an attachment
add-attachment <
CMD ARGS- in composer, pipe CMD ARGS output into an attachment
add-attachment-file-picker
- Launch command defined in the configuration value
file_picker_command
in meli.conf(5) TERMINAL add-attachment-file-picker <
CMD ARGS- Launch command CMD ARGS. The command should print file paths in stderr, separated by NULL bytes.
remove-attachment
INDEX- remove attachment with given index
toggle sign
- toggle between signing and not signing this message. If the gpg invocation fails then the mail won't be sent. See meli.conf(5) PGP for PGP configuration.
save-draft
- saves a copy of the draft in the Draft folder
Generic commands¶
open-in-tab
- opens envelope view in new tab
close
- closes closeable tabs
setenv
KEY=VALUE- set environment variable KEY to VALUE
printenv
KEY- print environment variable KEY
quit
- Quits
meli
. reload-config
- Reloads configuration but only if account configuration is unchanged.
Useful if you want to reload some settings without restarting
meli
.
EXIT STATUS¶
meli
exits with 0 on a successful run.
Other exit statuses are:
- 1
- catchall for general errors
- 101
- process panic
ENVIRONMENT¶
EDITOR
- Specifies the editor to use
MELI_CONFIG
- Override the configuration file
NO_COLOR
- When defined (regardless of its value), prevents the addition of
ANSI
color. The configuration value
use_color
overrides this.
FILES¶
meli
uses the following parts of the XDG
standard:
XDG_CONFIG_HOME
- defaults to ~/.config/
XDG_CACHE_HOME
- defaults to ~/.cache/
and appropriates the following locations:
- $XDG_CONFIG_HOME/meli/
- User configuration directory
- $XDG_CONFIG_HOME/meli/config.toml
- User configuration file, see meli.conf(5) for its syntax and values.
- $XDG_CACHE_HOME/meli/*
- Internal cached data used by meli.
- $XDG_DATA_HOME/meli/*
- Internal data used by meli.
- $XDG_DATA_HOME/meli/meli.log
- Operation log.
- /tmp/meli/*
- Temporary files generated by
meli
.
Mailcap entries are searched for in the following files, in this order:
- $XDG_CONFIG_HOME/meli/mailcap
- $XDG_CONFIG_HOME/.mailcap
- $HOME/.mailcap
- /etc/mailcap
- /usr/etc/mailcap
- /usr/local/etc/mailcap
STANDARDS¶
- Waldo Bastian, Allison Karlitskaya, Lennart Poettering, and Johannes Löthberg, XDG Base Directory Specification, https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html, May 08, 2021, Version 0.8.
- Daniel J. Bernstein, maildir, https://cr.yp.to/proto/maildir.html, 1995.
- Dr. Nathaniel S. Borenstein, RFC1524 A User Agent Configuration Mechanism For Multimedia Mail Format Information, Legacy, https://datatracker.ietf.org/doc/rfc1524/, September 01, 1993, mailcap file.
- Keith Moore, RFC2047 MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text, IETF, https://datatracker.ietf.org/doc/rfc2047/, November 01, 1996.
- Rens Troost, Steve Dorner, and Keith Moore, RFC2183 Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field, Legacy, https://datatracker.ietf.org/doc/rfc2183/, August 01, 1997.
- Joshua D. Baer and Grant Neufeld, RFC2369 The Use of URLs as Meta-Syntax for Core Mail List Commands and their Transport through Message Header Fields, Legacy, https://datatracker.ietf.org/doc/rfc2369/, July 01, 1998.
- Frank Dawson and Tim Howes, RFC2426 vCard MIME Directory Profile, IETF, https://datatracker.ietf.org/doc/rfc2426/, September 01, 1998, vCard Version 3.
- Tim Showalter, RFC2971 IMAP4 ID extension, IETF, https://datatracker.ietf.org/doc/rfc2971/, October 01, 2000.
- Thomas Roessler, Michael Elkins, Raph Levien, and Dave Del Torto, RFC3156 MIME Security with OpenPGP, IETF, https://datatracker.ietf.org/doc/rfc3156/, August 01, 2001.
- Keith Moore, RFC3461 Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs), IETF, https://datatracker.ietf.org/doc/rfc3461/, January 23, 2003.
- Mark Crispin, RFC3501 INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1, IETF, https://datatracker.ietf.org/doc/rfc3501/, March 18, 2003.
- Randall Gellens, RFC3676 The Text/Plain Format and DelSp Parameters, IETF, https://datatracker.ietf.org/doc/rfc3676/, February 19, 2004.
- Alexey Melnikov, RFC3691 Internet Message Access Protocol (IMAP) UNSELECT command, IETF, https://datatracker.ietf.org/doc/rfc3691/, February 20, 2004.
- Clive Feather, RFC3977 Network News Transfer Protocol (NNTP), IETF, https://datatracker.ietf.org/doc/rfc3977/, October 26, 2006.
- Kurt Zeilenga, RFC4505 Anonymous Simple Authentication and Security Layer (SASL) Mechanism, IETF, https://datatracker.ietf.org/doc/rfc4505/, June 12, 2006.
- Alexey Melnikov, RFC4549 Synchronization Operations for Disconnected IMAP4 Clients, IETF, https://datatracker.ietf.org/doc/rfc4549/, June 16, 2006.
- Kurt Zeilenga, RFC4616 The PLAIN Simple Authentication and Security Layer (SASL) Mechanism, IETF, https://datatracker.ietf.org/doc/rfc4616/, August 31, 2006.
- Rob Siemborski and Alexey Melnikov, RFC4954 SMTP Service Extension for Authentication, IETF, https://datatracker.ietf.org/doc/rfc4954/, July 23, 2007.
- Dr. John C. Klensin, RFC5321 Simple Mail Transfer Protocol, IETF, https://datatracker.ietf.org/doc/rfc5321/, October 01, 2008.
- Pete Resnick, RFC5322 Internet Message Format, IETF, https://datatracker.ietf.org/doc/rfc5322/, October 01, 2008.
- Julien ÉLIE, RFC6048 Network News Transfer Protocol (NNTP) Additions to LIST Command, IETF, https://datatracker.ietf.org/doc/rfc6048/, November 22, 2010.
- Dave Crocker, Dr. John C. Klensin, Dr. Marshall T. Rose, and Ned Freed, RFC6152 SMTP Service Extension for 8-bit MIME Transport, IETF, https://datatracker.ietf.org/doc/rfc6152/, March 07, 2011.
- Simon Perreault, RFC6350 vCard Format Specification, IETF, https://datatracker.ietf.org/doc/rfc6350/, August 31, 2011, vCard Version 4.
- Abel Yang, Shawn Steele, and Ned Freed, RFC6532 Internationalized Email Headers, IETF, https://datatracker.ietf.org/doc/rfc6532/, February 17, 2012.
- Cyrus Daboo, RFC6868 Parameter Value Encoding in iCalendar and vCard, IETF, https://datatracker.ietf.org/doc/rfc6868/, February 14, 2013.
- Alexey Melnikov and Dave Cridland, RFC7162 IMAP Extensions: Quick Flag Changes Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization (QRESYNC), IETF, https://datatracker.ietf.org/doc/rfc7162/, May 23, 2014.
- Neil Jenkins and Chris Newman, RFC8620 The JSON Meta Application Protocol (JMAP), IETF, https://datatracker.ietf.org/doc/rfc8620/, July 18, 2019.
- Neil Jenkins and Chris Newman, RFC8621 The JSON Meta Application Protocol (JMAP) for Mail, IETF, https://datatracker.ietf.org/doc/rfc8621/, August 08, 2019.
SEE ALSO¶
meli.conf(5), meli-themes(5), meli(7), xdg-open(1), mailcap(5)
AUTHORS¶
Copyright 2017–2024 Manos Pitsidianakis <manos@pitsidianak.is>
Released under the GPL, version 3 or greater. This software carries no warranty of any kind. (See COPYING for full copyright and warranty notices.)
Links¶
March 10, 2024 | Debian |