18 KiB
18 KiB
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]
--help | -h
Show help message and exit.
--version | -v
Show version and exit.
--config path
Start meli with given configuration file.
create-config [path]
Create configuration file in path if given, or at
$XDG_CONFIG_HOME/meli/config.toml
edit-config
Edit configuration files with EDITOR or VISUAL.
test-config [path]
Test a configuration file for syntax issues or missing
options.
man [page]
Print documentation page and exit (Piping to a pager is
recommended).
print-default-theme
Print default theme keys and values in TOML syntax, to
be used as a blueprint.
print-loaded-themes
Print all loaded themes in TOML syntax.
compiled-with
Print compile time feature flags of this binary.
view View mail from input file.
DESCRIPTION
meli is a terminal mail client aiming for extensive and user-frendly
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.
The main visual navigation tool, the left-side sidebar may be toggled
with ⟨`⟩ (shortcuts.listing.toggle_menu_visibility).
Each mailbox may be viewed in 4 modes: Plain views each mail
individually, Threaded shows their thread relationship visually,
Conversations collapses each thread of emails 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.
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-file
command. 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:
index ACCOUNT_NAME
To 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:
subject:helloooo or subject:"call for help" or "You remind me today
of a small, Mexican chihuahua."
not ((from:unrealistic and (to:complex or not query )) or
flags:seen,draft)
alladdresses:mailing@example.com and cc:me@example.com
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 noticable delay.
QUERY ABNF SYNTAX
• query = "(" query ")" | from | to | cc | bcc | alladdresses | subject
| flags | has_attachments | query "or" query | query "and" query |
not query
• not = "not" | "!"
• 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
• from = "from:" term
• to = "to:" term
• cc = "cc:" term
• bcc = "bcc:" term
• alladdresses = "alladdresses:" term
• subject = "subject:" term
• flags = "flags:" flag | "tags:" flag | "is:" 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_mail) 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 setting
embed to true in your composing settings (You can return to meli 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 the edit_mail 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_mail.
CONTACTS
meli supports three kinds of contact backends:
1. an internal format that gets saved under
$XDG_DATA_HOME/meli/account_name/addressbook.
2. vCard files (v3, v4) through the vcard_folder option in the
account section. The path defined as vcard_folder can hold
multiple vCards per file. They are loaded read only.
3. a mutt(1) compatible alias file in the option mutt_alias_file
See meli.conf(5) ACCOUNTS for the complete account 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 Mode
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.
set seen, set 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 threads.
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
unreversible.
Mail view commands
pipe EXECUTABLE ARGS pipe pager contents to binary
filter EXECUTABLE ARGS filter and display pager contents
through command
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.
SHORTCUTS
See meli.conf(5) SHORTCUTS for shortcuts and their default values.
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 present (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_CONFIG_HOME/meli/hooks/* Reserved for event hooks.
$XDG_CONFIG_HOME/meli/plugins/* Reserved for plugin files.
$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:
1. $XDG_CONFIG_HOME/meli/mailcap
2. $XDG_CONFIG_HOME/.mailcap
3. $HOME/.mailcap
4. /etc/mailcap
5. /usr/etc/mailcap
6. /usr/local/etc/mailcap
SEE ALSO
meli.conf(5), meli-themes(5), meli(7), xdg-open(1), mailcap(5)
CONFORMING TO
• XDG Standard
https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html.
• mailcap file, RFC 1524: A User Agent Configuration Mechanism For
Multimedia Mail Format Information
• RFC 5322: Internet Message Format
• RFC 6532: Internationalized Email Headers
• RFC 2047: MIME (Multipurpose Internet Mail Extensions) Part Three:
Message Header Extensions for Non-ASCII Text
• RFC 3676: The Text/Plain Format and DelSp Parameters
• RFC 3156: MIME Security with OpenPGP
• RFC 2183: Communicating Presentation Information in Internet
Messages: The Content-Disposition Header Field
• RFC 2369: The Use of URLs as Meta-Syntax for Core Mail List Commands
and their Transport through Message Header Fields
• maildir https://cr.yp.to/proto/maildir.html.
• RFC 5321: Simple Mail Transfer Protocol
• RFC 3461: Simple Mail Transfer Protocol (SMTP) Service Extension for
Delivery Status Notifications (DSNs)
• RFC 4954: SMTP Service Extension for Authentication
• RFC 6152: SMTP Service Extension for 8-bit MIME Transport
• RFC 4616: The PLAIN Simple Authentication and Security Layer (SASL)
Mechanism
• RFC 3501: INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
• RFC 3691: Internet Message Access Protocol (IMAP) UNSELECT command
• RFC 4549: Synch Ops for Disconnected IMAP4 Clients
• RFC 7162: IMAP Extensions: Quick Flag Changes Resynchronization
(CONDSTORE) and Quick Mailbox Resynchronization (QRESYNC)
• RFC 8620: The JSON Meta Application Protocol (JMAP)
• RFC 8621: The JSON Meta Application Protocol (JMAP) for Mail
• RFC 3977: Network News Transfer Protocol (NNTP)
• RFC 6048: Network News Transfer Protocol (NNTP) Additions to LIST
Command
• vCard Version 3, RFC 2426: vCard MIME Directory Profile
• vCard Version 4, RFC 6350: vCard Format Specification
• RFC 6868 Parameter Value Encoding in iCalendar and vCard
AUTHORS
Copyright 2017-2022 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).
https://meli.delivery
Debian November 11, 2022 Debian