Man page - meli(1)
Packages contains this manual
Manual
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 . If path is - the result is printed to the standard output stream.
test-config [ path ]
Test a configuration for syntax issues or missing options. The configuration is read from path if given, or from $XDG_CONFIG_HOME/meli/config.toml . If path is - the configuration is read from the standard input stream.
man [ page ]
Print documentation page and exit (Piping to a pager is recommended).
install-man [ path ]
Install manual pages to the first location provided by MANPATH or manpath (1), unless you specify the directory as an argument.
compiled-with
Print compile time feature flags of this binary.
edit-config
Edit configuration files with EDITOR or VISUAL.
help
Prints help information or the help of the given subcommand(s).
print-app-directories
Print all directories that meli creates and uses.
print-config-path
Print location of configuration file that will be loaded on normal app startup.
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.
print-log-path
Print log file location.
view
View mail from input file.
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.
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 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 following command:
save-attachment INDEX path-to-file
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.
You can pipe individual attachments to binaries with the following command:
pipe-attachment INDEX binary ARGS
Example usage with the less (1) pager:
pipe-attachment 0 less
If the binary does not wait for your input before exiting, you will probably not see its output since you will return back to the user interface immediately. You can write a wrapper script that pipes your binaryâs output to
less
or
less -r
if you want to preserve the ANSI escape codes in the pagerâs output.
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_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 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 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 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:
1.
an internal format that gets saved under $XDG_DATA_HOME/meli/account_name/contacts .
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 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
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 stdout, separated by NUL bytes. Example usage with fzf (1):
add-attachment-file-picker < fzf --print0
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 .
manage-jobs
Inspect background jobs.
manage-mailboxes
Inspect all mailboxes of an account, subscribed or not. Pressing the âš Enterâ© Â (
shortcuts.general.open_entry ) shortcut allows you to rename, move, toggle subscription and delete the mailbox under the cursor.
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:
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
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
Website
:
https://meli-email.org
Main git repository and issue tracker
:
https://git.meli-email.org/meli/meli
Official read-only git mirror on codeberg.org
:
https://codeberg.org/meli/meli
Official read-only git mirror on github.com
:
https://github.com/meli/meli
meli crate on crates.io
:
https://crates.io/crates/meli Debian March 10, 2024
MELI
(1)