mirror of
https://git.meli.delivery/meli/meli
synced 2024-11-17 03:26:20 +00:00
279c288a22
Just like vi.
589 lines
15 KiB
Groff
589 lines
15 KiB
Groff
.\" meli - meli.1
|
|
.\"
|
|
.\" Copyright 2017-2019 Manos Pitsidianakis
|
|
.\"
|
|
.\" This file is part of meli.
|
|
.\"
|
|
.\" meli is free software: you can redistribute it and/or modify
|
|
.\" it under the terms of the GNU General Public License as published by
|
|
.\" the Free Software Foundation, either version 3 of the License, or
|
|
.\" (at your option) any later version.
|
|
.\"
|
|
.\" meli is distributed in the hope that it will be useful,
|
|
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
.\" GNU General Public License for more details.
|
|
.\"
|
|
.\" You should have received a copy of the GNU General Public License
|
|
.\" along with meli. If not, see <http://www.gnu.org/licenses/>.
|
|
.\"
|
|
.Dd July 29, 2019
|
|
.Dt MELI 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm meli
|
|
.Nd Meli Mail User Agent. meli is the Greek word for honey
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl -help | h
|
|
.Op Fl -version | v
|
|
.Op Fl -config Ar path
|
|
.Bl -tag -width flag -offset indent
|
|
.It Fl -help | h
|
|
Show help message and exit.
|
|
.It Fl -version | v
|
|
Show version and exit.
|
|
.It Fl -config Ar path
|
|
Start meli with given configuration file.
|
|
.It Cm create-config Op Ar path
|
|
Create configuration file in
|
|
.Pa path
|
|
if given, or at
|
|
.Pa $XDG_CONFIG_HOME/meli/config.toml
|
|
.It Cm test-config Op Ar path
|
|
Test a configuration file for syntax issues or missing options.
|
|
.It Cm man Op Ar page
|
|
Print documentation page and exit (Piping to a pager is recommended.)
|
|
.It Cm print-default-theme
|
|
Print default theme keys and values in TOML syntax, to be used as a blueprint.
|
|
.It Cm print-loaded-themes
|
|
Print all loaded themes in TOML syntax.
|
|
.It Cm view
|
|
View mail from input file.
|
|
.El
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
is a terminal mail client aiming for extensive and user-frendly configurability.
|
|
.Bd -literal
|
|
^^ .-=-=-=-. ^^
|
|
^^ (`-=-=-=-=-`) ^^
|
|
(`-=-=-=-=-=-=-`) ^^ ^^
|
|
^^ (`-=-=-=-=-=-=-=-`) ^^
|
|
( `-=-=-=-(@)-=-=-` ) ^^
|
|
(`-=-=-=-=-=-=-=-=-`) ^^
|
|
(`-=-=-=-=-=-=-=-=-`) ^^
|
|
(`-=-=-=-=-=-=-=-=-`)
|
|
^^ (`-=-=-=-=-=-=-=-=-`) ^^
|
|
^^ (`-=-=-=-=-=-=-=-`) ^^
|
|
(`-=-=-=-=-=-=-`) ^^
|
|
^^ (`-=-=-=-=-`)
|
|
`-=-=-=-=-` ^^
|
|
.Ed
|
|
.Sh STARTING WITH meli
|
|
When launched for the first time,
|
|
.Nm
|
|
will search for its configuration directory,
|
|
.Pa $XDG_CONFIG_HOME/meli/ Ns
|
|
\&.
|
|
If it doesn't exist, you will be asked if you want to create one and presented with a sample configuration file
|
|
.Pq Pa $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
|
|
.Xr meli.conf 5
|
|
for the available configuration options.
|
|
.Pp
|
|
At any time, you may press
|
|
.Cm \&?
|
|
for a searchable list of all available actions and shortcuts, along with every possible setting and command that your version supports.
|
|
.Pp
|
|
The main visual navigation tool, the left-side sidebar may be toggled with
|
|
.Cm `
|
|
(shortcuts.listing:
|
|
.Ic toggle_menu_visibility Ns
|
|
).
|
|
.Pp
|
|
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.
|
|
.Pp
|
|
If you're using a light color palette in your terminal, you should set
|
|
.Em theme = "light"
|
|
in the
|
|
.Em terminal
|
|
section of your configuration.
|
|
See
|
|
.Xr meli-themes 5
|
|
for complete documentation on user themes.
|
|
.Sh VIEWING MAIL
|
|
Open attachments by typing their index in the attachments list and then
|
|
.Cm a
|
|
.Po
|
|
shortcut
|
|
.Ic open_attachment
|
|
.Pc .
|
|
.Nm
|
|
will attempt to open text inside its pager, and other content via
|
|
.Cm xdg-open Ns
|
|
\&.
|
|
Press
|
|
.Cm m
|
|
.Po
|
|
shortcut
|
|
.Ic open_mailcap
|
|
.Pc
|
|
instead to use the mailcap entry for the MIME type of the attachment, if any.
|
|
See
|
|
.Sx FILES
|
|
for the location of the mailcap files and
|
|
.Xr mailcap 5
|
|
for their syntax.
|
|
You can save individual attachments with the
|
|
.Em COMMAND
|
|
.Cm save-attachment Ar INDEX Ar path-to-file
|
|
where
|
|
.Ar INDEX
|
|
is the attachment's index in the listing.
|
|
If the zeroth 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.
|
|
.Sh SEARCH
|
|
Each e-mail storage backend has a default search method assigned.
|
|
.Em IMAP
|
|
uses the SEARCH command,
|
|
.Em notmuch
|
|
uses libnotmuch and
|
|
.Em Maildir/mbox
|
|
performs a slow linear search.
|
|
It is advised to use a search backend on
|
|
.Em Maildir/mbox
|
|
accounts.
|
|
.Nm Ns
|
|
, if built with sqlite3, includes the ability to perform full text search on the following fields:
|
|
.Em From ,
|
|
.Em To ,
|
|
.Em Cc ,
|
|
.Em Bcc ,
|
|
.Em In-Reply-To ,
|
|
.Em References ,
|
|
.Em Subject
|
|
and
|
|
.Em 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
|
|
.Em search_backend
|
|
to
|
|
.Em sqlite3
|
|
in the configuration file and to create the sqlite3 index issue command
|
|
.Cm index Ar ACCOUNT_NAME Ns \&.
|
|
.sp
|
|
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:
|
|
.Pp
|
|
.D1 subject:helloooo or subject:\&"call for help\&" or \&"You remind me today of a small, Mexican chihuahua.\&"
|
|
.Pp
|
|
.D1 not ((from:unrealistic and (to:complex or not "query")) or flags:seen,draft)
|
|
.Pp
|
|
.D1 alladdresses:mailing@list.tld and cc:me@domain.tld
|
|
.Pp
|
|
Boolean operators are
|
|
.Em or Ns
|
|
,
|
|
.Em and
|
|
and
|
|
.Em not
|
|
.Po
|
|
alias:
|
|
.Em \&!
|
|
.Pc
|
|
String keywords with spaces must be quoted.
|
|
Quotes should always be escaped.
|
|
.sp
|
|
.Sy Important Notice about IMAP/JMAP
|
|
.sp
|
|
To prevent downloading all your messages from your IMAP/JMAP server, don't set
|
|
.Em search_backend
|
|
to
|
|
.Em sqlite3 Ns
|
|
\&.
|
|
.Nm
|
|
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.
|
|
.Ss QUERY ABNF SYNTAX
|
|
.Bl -bullet
|
|
.It
|
|
.Li query = \&"(\&" query \&")\&" | from | to | cc | bcc | alladdresses | subject | flags | has_attachments | query \&"or\&" query | query \&"and\&" query | not query
|
|
.It
|
|
.Li not = \&"not\&" | \&"!\&"
|
|
.It
|
|
.Li quoted = ALPHA / SP *(ALPHA / DIGIT / SP)
|
|
.It
|
|
.Li term = ALPHA *(ALPHA / DIGIT) | DQUOTE quoted DQUOTE
|
|
.It
|
|
.Li tagname = term
|
|
.It
|
|
.Li flagval = \&"passed\&" | \&"replied\&" | \&"seen\&" | \&"read\&" | \&"junk\&" | \&"trash\&" | \&"trashed\&" | \&"draft\&" | \&"flagged\&" | tagname
|
|
.It
|
|
.Li flagterm = flagval | flagval \&",\&" flagterm
|
|
.It
|
|
.Li from = \&"from:\&" term
|
|
.It
|
|
.Li to = \&"to:\&" term
|
|
.It
|
|
.Li cc = \&"cc:\&" term
|
|
.It
|
|
.Li bcc = \&"bcc:\&" term
|
|
.It
|
|
.Li alladdresses = \&"alladdresses:\&" term
|
|
.It
|
|
.Li subject = \&"subject:\&" term
|
|
.It
|
|
.Li flags = \&"flags:\&" flag | \&"tags:\&" flag | \&"is:\&" flag
|
|
.El
|
|
.Sh TAGS
|
|
.Nm
|
|
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
|
|
.Cm tag add TAG
|
|
and
|
|
.Cm tag remove TAG
|
|
(see
|
|
.Xr meli.conf 5 TAGS Ns
|
|
, settings
|
|
.Ic colors
|
|
and
|
|
.Ic ignore_tags
|
|
for how to set tag colors and tag visiblity)
|
|
.Sh COMPOSING
|
|
.Ss Opening the message Composer tab
|
|
To create a new mail message, press
|
|
.Cm m
|
|
(shortcut
|
|
.Ic new_mail Ns
|
|
) while viewing a mailbox.
|
|
To reply to a mail, press
|
|
.Cm R
|
|
.Po
|
|
shortcut
|
|
.Ic reply
|
|
.Pc .
|
|
Both these actions open the mail composer view in a new tab.
|
|
.Ss Editing text
|
|
.Bl -bullet -compact
|
|
.It
|
|
Edit the header fields by selecting with the arrow keys and pressing
|
|
.Cm enter
|
|
to enter
|
|
.Em INSERT
|
|
mode and
|
|
.Cm Esc
|
|
key to exit.
|
|
.It
|
|
At any time you may press
|
|
.Cm e
|
|
(shortcut
|
|
.Ic edit_mail Ns
|
|
) to launch your editor (see
|
|
.Xr meli.conf 5 COMPOSING Ns
|
|
, setting
|
|
.Ic editor_command
|
|
for how to select which editor to launch).
|
|
.It
|
|
Your editor can be used in
|
|
.Nm Ns
|
|
\&'s embed terminal emulator by setting
|
|
.Ic embed
|
|
to
|
|
.Em true
|
|
in your composing settings.
|
|
.It
|
|
When launched, your editor captures all input until it exits or stops.
|
|
.It
|
|
To stop your editor and return to
|
|
.Nm
|
|
press Ctrl-z and to resume editing press the
|
|
.Ic edit_mail
|
|
command again
|
|
.Po
|
|
default
|
|
.Em e
|
|
.Pc .
|
|
.El
|
|
.Ss Attachments
|
|
Attachments may be handled with the
|
|
.Cm add-attachment Ns
|
|
,
|
|
.Cm remove-attachment
|
|
commands (see below).
|
|
.Ss Sending
|
|
Finally, pressing
|
|
.Cm s
|
|
(shortcut
|
|
.Ic send_mail Ns
|
|
) will send your message according to your settings
|
|
.Po
|
|
see
|
|
.Xr meli.conf 5 COMPOSING Ns
|
|
, setting
|
|
.Ic send_mail
|
|
.Pc Ns
|
|
\&.
|
|
With no Draft or Sent mailbox,
|
|
.Nm
|
|
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
|
|
.Em tmp
|
|
directory instead and you will be notified of its location.
|
|
.Ss Drafts
|
|
To save your draft without sending it, issue
|
|
.Em COMMAND
|
|
.Cm close
|
|
and select 'save as draft'.
|
|
.sp
|
|
To open a draft for further editing, select your draft in the mail listing and press
|
|
.Ic edit_mail Ns
|
|
\&.
|
|
.Sh CONTACTS
|
|
.Nm
|
|
supports two kinds of contact backends:
|
|
.sp
|
|
.Bl -enum -compact -offset indent
|
|
.It
|
|
an internal format that gets saved under
|
|
.Pa $XDG_DATA_HOME/meli/account_name/addressbook Ns
|
|
\&.
|
|
.It
|
|
vCard files (v3, v4) through the
|
|
.Ic vcard_folder
|
|
option in the account section.
|
|
The path defined as
|
|
.Ic vcard_folder
|
|
can hold multiple vCards per file.
|
|
They are loaded read only.
|
|
.El
|
|
.sp
|
|
See
|
|
.Xr meli.conf 5 ACCOUNTS
|
|
for the complete account configuration values.
|
|
.Sh MODES
|
|
.Bl -tag -compact -width 8n
|
|
.It NORMAL
|
|
is the default mode
|
|
.It COMMAND
|
|
commands are issued in
|
|
.Em COMMAND
|
|
mode, by default started with
|
|
.Cm \&:
|
|
and exited with
|
|
.Cm Esc
|
|
key.
|
|
.It EMBED
|
|
is the mode of the embed terminal emulator
|
|
.It INSERT
|
|
captures all input as text input, and is exited with
|
|
.Cm Esc
|
|
key.
|
|
.El
|
|
.Ss COMMAND Mode
|
|
.Ss Mail listing commands
|
|
.Bl -tag -width 36n
|
|
.It Cm set Ar plain | threaded | compact | conversations
|
|
set the way mailboxes are displayed
|
|
.El
|
|
.TS
|
|
allbox tab(:);
|
|
lb l.
|
|
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
|
|
.TE
|
|
.Bl -tag -width 36n
|
|
.It Cm sort Ar subject | date \ Ar asc | desc
|
|
sort mail listing
|
|
.It Cm subsort Ar subject | date \ Ar asc | desc
|
|
sorts only the first level of replies.
|
|
.It Cm go Ar n
|
|
where
|
|
.Ar n
|
|
is a mailbox prefixed with the
|
|
.Ar n
|
|
number in the side menu for the current account
|
|
.It Cm toggle thread_snooze
|
|
don't issue notifications for thread under cursor in thread listing
|
|
.It Cm search Ar STRING
|
|
search mailbox with
|
|
.Ar STRING
|
|
query.
|
|
Escape exits search results.
|
|
.It Cm select Ar STRING
|
|
select threads matching
|
|
.Ar STRING
|
|
query.
|
|
.It Cm set seen, set unseen
|
|
Set seen status of message.
|
|
.It Cm import Ar FILEPATH Ar MAILBOX_PATH
|
|
Import mail from file into given mailbox.
|
|
.It Cm copyto, moveto Ar MAILBOX_PATH
|
|
Copy or move to other mailbox.
|
|
.It Cm copyto, moveto Ar ACCOUNT Ar MAILBOX_PATH
|
|
Copy or move to another account's mailbox.
|
|
.It Cm delete
|
|
Delete selected threads.
|
|
.It Cm create-mailbox Ar ACCOUNT Ar MAILBOX_PATH
|
|
create mailbox with given path.
|
|
Be careful with backends and separator sensitivity (eg IMAP)
|
|
.It Cm subscribe-mailbox Ar ACCOUNT Ar MAILBOX_PATH
|
|
subscribe to mailbox with given path
|
|
.It Cm unsubscribe-mailbox Ar ACCOUNT Ar MAILBOX_PATH
|
|
unsubscribe to mailbox with given path
|
|
.It Cm rename-mailbox Ar ACCOUNT Ar MAILBOX_PATH_SRC Ar MAILBOX_PATH_DEST
|
|
rename mailbox
|
|
.It Cm delete-mailbox Ar ACCOUNT Ar MAILBOX_PATH
|
|
deletes mailbox in the mail backend.
|
|
This action is unreversible.
|
|
.El
|
|
.Ss Mail view commands
|
|
.Bl -tag -width 36n
|
|
.It Cm pipe Ar EXECUTABLE Ar ARGS
|
|
pipe pager contents to binary
|
|
.It Cm list-post
|
|
post in list of viewed envelope
|
|
.It Cm list-unsubscribe
|
|
unsubscribe automatically from list of viewed envelope
|
|
.It Cm list-archive
|
|
open list archive with
|
|
.Cm xdg-open
|
|
.El
|
|
.Ss composing mail commands
|
|
.Bl -tag -width 36n
|
|
.It Cm add-attachment Ar PATH
|
|
in composer, add
|
|
.Ar PATH
|
|
as an attachment
|
|
.It Cm add-attachment < Ar CMD Ar ARGS
|
|
in composer, pipe
|
|
.Ar CMD Ar ARGS
|
|
output into an attachment
|
|
.It Cm add-attachment-file-picker
|
|
Launch command defined in the configuration value
|
|
.Ic file_picker_command
|
|
in
|
|
.Xr meli.conf 5 TERMINAL
|
|
.It Cm add-attachment-file-picker < Ar CMD Ar ARGS
|
|
Launch command
|
|
.Ar CMD Ar ARGS Ns
|
|
\&.
|
|
The command should print file paths in stderr, separated by NULL bytes.
|
|
.It Cm remove-attachment Ar INDEX
|
|
remove attachment with given index
|
|
.It Cm toggle sign
|
|
toggle between signing and not signing this message.
|
|
If the gpg invocation fails then the mail won't be sent.
|
|
See
|
|
.Xr meli.conf 5 PGP
|
|
for PGP configuration.
|
|
.It Cm save-draft
|
|
saves a copy of the draft in the Draft folder
|
|
.El
|
|
.Ss generic commands
|
|
.Bl -tag -width 36n
|
|
.It Cm open-in-tab
|
|
opens envelope view in new tab
|
|
.It Cm close
|
|
closes closeable tabs
|
|
.It Cm setenv Ar KEY=VALUE
|
|
set environment variable
|
|
.Ar KEY
|
|
to
|
|
.Ar VALUE
|
|
.It Cm printenv Ar KEY
|
|
print environment variable
|
|
.Ar KEY
|
|
.El
|
|
.Sh SHORTCUTS
|
|
See
|
|
.Xr meli.conf 5 SHORTCUTS
|
|
for shortcuts and their default values.
|
|
.Sh EXIT STATUS
|
|
.Nm
|
|
exits with 0 on a successful run.
|
|
Other exit statuses are:
|
|
.Bl -tag -width 5n
|
|
.It 1
|
|
catchall for general errors
|
|
.It 101
|
|
process panic
|
|
.El
|
|
.Sh ENVIRONMENT
|
|
.Bl -tag -width "$XDG_CONFIG_HOME/meli/plugins/*" -offset indent
|
|
.It Ev EDITOR
|
|
Specifies the editor to use
|
|
.It Ev MELI_CONFIG
|
|
Override the configuration file
|
|
.It Ev NO_COLOR
|
|
When present (regardless of its value), prevents the addition of ANSI color.
|
|
The configuration value
|
|
.Ic use_color
|
|
overrides this.
|
|
.El
|
|
.Sh FILES
|
|
.Nm
|
|
uses the following parts of the XDG standard:
|
|
.Bl -tag -width "$XDG_CONFIG_HOME/meli/plugins/*" -offset indent
|
|
.It Ev XDG_CONFIG_HOME
|
|
defaults to
|
|
.Pa ~/.config/
|
|
.It Ev XDG_CACHE_HOME
|
|
defaults to
|
|
.Pa ~/.cache/
|
|
.El
|
|
.Pp
|
|
and appropriates the following locations:
|
|
.Bl -tag -width "$XDG_CONFIG_HOME/meli/plugins/*" -offset indent
|
|
.It Pa $XDG_CONFIG_HOME/meli/
|
|
User configuration directory
|
|
.It Pa $XDG_CONFIG_HOME/meli/config.toml
|
|
User configuration file, see
|
|
.Xr meli.conf 5
|
|
for its syntax and values.
|
|
.It Pa $XDG_CONFIG_HOME/meli/hooks/*
|
|
Reserved for event hooks.
|
|
.It Pa $XDG_CONFIG_HOME/meli/plugins/*
|
|
Reserved for plugin files.
|
|
.It Pa $XDG_CACHE_HOME/meli/*
|
|
Internal cached data used by meli.
|
|
.It Pa $XDG_DATA_HOME/meli/*
|
|
Internal data used by meli.
|
|
.It Pa $XDG_DATA_HOME/meli/meli.log
|
|
Operation log.
|
|
.It Pa /tmp/meli/*
|
|
Temporary files generated by
|
|
.Nm Ns
|
|
\&.
|
|
.El
|
|
.Pp
|
|
Mailcap entries are searched for in the following files, in this order:
|
|
.Pp
|
|
.Bl -enum -compact -offset indent
|
|
.It
|
|
.Pa $XDG_CONFIG_HOME/meli/mailcap
|
|
.It
|
|
.Pa $XDG_CONFIG_HOME/.mailcap
|
|
.It
|
|
.Pa $HOME/.mailcap
|
|
.It
|
|
.Pa /etc/mailcap
|
|
.It
|
|
.Pa /usr/etc/mailcap
|
|
.It
|
|
.Pa /usr/local/etc/mailcap
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr meli.conf 5 ,
|
|
.Xr meli-themes 5 ,
|
|
.Xr xdg-open 1 ,
|
|
.Xr mailcap 5
|
|
.Sh CONFORMING TO
|
|
XDG Standard
|
|
.Aq https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html Ns
|
|
, maildir
|
|
.Aq https://cr.yp.to/proto/maildir.html Ns
|
|
, IMAPv4rev1 RFC3501, The JSON Meta Application Protocol (JMAP) RFC8620, The JSON Meta Application Protocol (JMAP) for Mail RFC8621.
|
|
.Sh AUTHORS
|
|
Copyright 2017-2019
|
|
.An Manos Pitsidianakis Aq epilys@nessuent.xyz
|
|
Released under the GPL, version 3 or greater.
|
|
This software carries no warranty of any kind.
|
|
(See COPYING for full copyright and warranty notices.)
|
|
.Pp
|
|
.Aq https://meli.delivery
|