Provided by: meli_0.8.9+dfsg-4_amd64 bug

NAME

     meli.conf — configuration file for the meli(1) terminal e-mail client

SYNOPSIS

     $XDG_CONFIG_HOME/meli/config.toml

DESCRIPTION

     Configuration for meli is written in TOML which has a few things to consider (quoting the
     specification):

     -   TOML is case sensitive.
     -   A TOML file must be a valid UTF-8 encoded Unicode document.
     -   White-space means tab (0x09) or space (0x20).
     -   Newline means LF (0x0A) or CRLF (0x0D 0x0A).

     Refer to TOML documentation for valid TOML syntax.

     Though not part of TOML syntax, meli.conf can have nested configuration files by using the
     following m4(1) include macro:

           include("/path/to/file")

SECTIONS

     The top level sections of the configuration are:
     -   accounts
     -   shortcuts
     -   notifications
     -   pager
     -   listing
     -   composing
     -   pgp
     -   terminal
     -   log

EXAMPLES

     An example configuration:

     # Setting up a Maildir account
     [accounts.account-name]
     root_mailbox = "/path/to/root/folder"
     format = "Maildir"
     listing.index_style = "Compact"
     identity="email@example.com"
     subscribed_mailboxes = ["folder", "folder/Sent"] # or [ "*", ] for all mailboxes
     display_name = "Name"

     # Set mailbox-specific settings
       [accounts.account-name.mailboxes]
       "INBOX" = { alias="Inbox" } #inline table
       "drafts" = { alias="Drafts" } #inline table
       [accounts.account-name.mailboxes."foobar-devel"] # or a regular table
         ignore = true # don't show notifications for this mailbox

     # Setting up an mbox account
     [accounts.mbox]
     root_mailbox = "/var/mail/username"
     format = "mbox"
     listing.index_style = "Compact"
     identity="username@hostname.local"
     composing.send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }

     [pager]
     filter = "COLUMNS=72 /usr/local/bin/pygmentize -l email"
     html_filter = "w3m -I utf-8 -T text/html"

     [notifications]
     script = "notify-send"

     [composing]
     # required for sending e-mail
     send_mail = 'msmtp --read-recipients --read-envelope-from'
     #send_mail = { hostname = "smtp.example.com", port = 587, auth = { type = "auto", username = "user", password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/user.gpg" } }, security = { type = "STARTTLS" } }
     editor_command = 'vim +/^$'

     [shortcuts]
     [shortcuts.composing]
     edit = 'e'

     [shortcuts.listing]
     new_mail = 'm'
     set_seen = 'n'

     [terminal]
     theme = "light"

     Available options are listed below.

ACCOUNTS

   Account configuration settings
     Default values are shown in parentheses.

     root_mailbox String                   The backend-specific path of the root_mailbox, usually
                                           INBOX.

     default_mailbox String                (optional) The mailbox that is the default to open or
                                           view for this account.  Must be a valid mailbox path.
                                           If not specified, the default will be the root
                                           mailbox.

     format String [maildir mbox imap notmuch jmap]
                                           The format of the mail backend.

     subscribed_mailboxes [String,]        An array of mailbox paths to display in the UI.  Paths
                                           are relative to the root mailbox (e.g.  INBOX/Sent,
                                           not Sent).  The glob wildcard * can be used to match
                                           every mailbox name and path.

     identity String                       Your e-mail address that is inserted in the From:
                                           headers of outgoing mail.

     extra_identities [String,]            Extra e-mail address identities.  When replying to an
                                           e-mail addressed to one of these identities, the From:
                                           header will be adjusted to its value instead of the
                                           default identity.

     display_name String                   (optional) A name which can be combined with your
                                           address: "Name <email@example.com>".

     read_only boolean                     Attempt to not make any changes to this account.
                                           (false)

     manual_refresh boolean                (optional) If true, do not monitor account for changes
                                           (you can use shortcut listing.refresh).  (false)

     refresh_command String                (optional) command to execute when manually refreshing
                                           (shortcut listing.refresh) (None)

     search_backend String                 (optional) Choose which search backend to use.
                                           Available options are "none" and "sqlite3".
                                           ("sqlite3")

     vcard_folder String                   (optional) Folder that contains .vcf files.  They are
                                           parsed and imported read-only.

     mutt_alias_file String                (optional) Path of mutt(1) compatible alias file in
                                           the option They are parsed and imported read-only.

     mailboxes mailbox                     (optional) Configuration for each mailbox.  Its format
                                           is described below in mailboxes.

   notmuch only
     notmuch is supported by loading the dynamic library libnotmuch.  If its location is missing
     from your library paths, you must add it yourself.  Alternatively, you can specify its path
     by using a setting.

     notmuch mailboxes are virtual, since they are defined by user-given notmuch queries.  You
     must explicitly state the mailboxes you want in the mailboxes field and set the query
     property to each of them.  To create a tree hierarchy with virtual mailboxes, define the
     parent property to a mailbox as the name of the parent mailbox you have used in your
     configuration.

     Account properties:

     root_mailbox                          points to the directory which contains the .notmuch/
                                           subdirectory.

     library_file_path Path                Use an arbitrary location of libnotmuch by specifying
                                           its full filesystem path.  (optional)
     Mailbox properties:

     query String                          The notmuch query that defines what content this
                                           virtual mailbox has.  Refer to notmuch-search-terms(7)
                                           for notmuch's search syntax.

     parent String                         If you wish to build a mailbox hierarchy, define the
                                           name of a parent mailbox you have used in your
                                           configuration.  (optional)

     Example:

     [accounts.notmuch]
     format = "notmuch"
     #library_file_path = "/opt/homebrew/lib/libnotmuch.5.dylib"
     ...
       [accounts.notmuch.mailboxes]
       "INBOX" = {  query="tag:inbox", subscribe = true }
       "Drafts" = {  query="tag:draft", subscribe = true }
       "Sent" = {  query="from:username@example.com from:username2@example.com", subscribe = true }
       "Archives" = {  query="tag:archived", subscribe = true }
       "Archives/2019" = {  query="tag:archived date:01-2019..12-2019", parent="Archives", subscribe = true }

   IMAP only
     IMAP specific options are:

     server_hostname String                example: "mail.example.com"

     server_username String                Server username

     server_password String                Server password

     server_password_command String        (optional) Use instead of server_password

     server_port number                    (optional) The port to connect to (143)

     use_starttls boolean                  (optional) If port is 993 and "use_starttls" is
                                           unspecified, it becomes false by default.  (true)

     use_tls boolean                       (optional) Connect with TLS (or upgrade from plain
                                           connection to TLS if STARTTLS is set.)  (true)

     danger_accept_invalid_certs boolean   (optional) Do not validate TLS certificates.  (false)

     offline_cache boolean                 (optional) Keep mail headers in an sqlite3 database.
                                           (true)

     use_idle boolean                      (optional) Use IDLE extension.  (true)

     use_condstore boolean                 (optional) Use CONDSTORE extension.  (true)

     use_deflate boolean                   (optional) Use COMPRESS=DEFLATE extension (if built
                                           with DEFLATE support) (true)

     use_oauth2 boolean                    (optional) Use OAUTH2 authentication.  Can only be
                                           used with server_password_command which should return
                                           a base64-encoded OAUTH2 token ready to be passed to
                                           IMAP.  For help on setup with Gmail, see Gmail section
                                           below.  (false)

     use_auth_anonymous boolean            (optional) Use AUTH=ANONYMOUS extension for
                                           authentication.  (false)

     use_id boolean                        (optional) Use ID extension to retrieve server
                                           metadata, viewable at the account status page.
                                           Enabling this does not send any information to the
                                           server.  (false)

     timeout integer                       (optional) Timeout to use for server connections in
                                           seconds.  A timeout of 0 seconds means there is no
                                           timeout.  (16)

   Gmail
     Gmail has non-standard IMAP behaviors that need to be worked around.

   Gmail - sending mail
     Option store_sent_mail should be disabled since Gmail auto-saves sent mail by its own.

   Gmail OAUTH2
     To use OAUTH2, you must go through a process to register your own private "application" with
     Google that can use OAUTH2 tokens, and set the option use_oauth2 as ‘true’ in the account
     configuration section.  For convenience in the meli repository under the contrib/ directory
     you can find a python3 file named oauth2.py to generate and request the appropriate data to
     perform OAUTH2 authentication.

     Steps:
     -   In Google APIs, create a custom OAuth client ID and note down the Client ID and Client
         Secret.  You may need to create a consent screen; follow the steps described in the
         website.
     -   Run the oauth2.py script as follows (after adjusting binary paths and credentials):

         python3 oauth2.py --user=xxx@gmail.com --client_id=1038[...].apps.googleusercontent.com
         --client_secret=VWFn8LIKAMC-MsjBMhJeOplZ --generate_oauth2_token and follow the
         instructions.  Note down the refresh token.
     -   In server_password_command enter a command like this (after adjusting binary paths and
         credentials):

         TOKEN=$(python3 oauth2.py --user=xxx@gmail.com --quiet
         --client_id=1038[...].apps.googleusercontent.com
         --client_secret=VWFn8LIKAMC-MsjBMhJeOplZ
         --refresh_token=1/Yzm6MRy4q1xi7Dx2DuWXNgT6s37OrP_DW_IoyTum4YA) && python3 oauth2.py
         --user=xxx@gmail.com --generate_oauth2_string --quiet --access_token=$TOKEN
     -   On startup, meli should evaluate this command which if successful must only return a
         base64-encoded token ready to be passed to IMAP.

         Your account section should look like this:

         [accounts."gmail"]
         root_mailbox = '[Gmail]'
         format = "imap"
         server_hostname='imap.gmail.com'
         server_username="username@gmail.com"
         use_oauth2 = true
         server_password_command = "TOKEN=$(py...th2_string --quiet --access_token=$TOKEN"
         server_port="993"
         listing.index_style = "Conversations"
         identity = "username@gmail.com"
         display_name = "Name Name"
         subscribed_mailboxes = ["*" ]
         composing.store_sent_mail = false
         composing.send_mail = { hostname = "smtp.gmail.com", port = 587, auth = { type = "xoauth2", token_command = "...", require_auth = true }, security = { type = "STARTTLS" } }

   JMAP only
     JMAP specific options

     server_url String                     example: "http://mail.example.com"
                                           "http://mail.example.com:8080"
                                           "https://mail.example.com"

     server_username String                Server username

     server_password String                Server password

     server_password_command String        (optional) Use instead of server_password

     use_token boolean                     Authenticate using the API Bearer token method.  If
                                           enabled, the token value must be provided as the
                                           configured password.  (false)

     danger_accept_invalid_certs boolean   (optional) Do not validate TLS certificates.  (false)

     timeout integer                       (optional) Timeout to use for server connections in
                                           seconds.  A timeout of 0 seconds means there is no
                                           timeout.  (16)

   mbox only
     mbox specific options:

     prefer_mbox_type String               (optional) Prefer specific mbox format reader for each
                                           message.  Default is "mboxcl2" format.  If the
                                           preferred format fails, the message is retried with
                                           mboxrd and then if it fails again there is a recover
                                           attempt, which discards the invalid message.

                                           Valid values
                                           -   auto
                                           -   mboxo
                                           -   mboxrd
                                           -   mboxcl
                                           -   mboxcl2
                                           (auto)
     To set multiple mailboxes, you have to explicitly state the mailboxes you want in the
     mailboxes field and set the path property to each of them.  Example:

     [accounts.mbox]
     format = "mbox"
     mailboxes."Python mailing list" = { path = "~/.mail/python.mbox", subscribe = true, autoload = true }

   NNTP
     NNTP specific options

     server_hostname String                example: "nntp.example.com"

     server_username String                Server username

     server_password String                Server password

     require_auth boolean                  (optional) require authentication in every case (true)

     use_tls boolean                       (optional) Connect with TLS.  (false)

     server_port number                    (optional) The port to connect to (119)

     danger_accept_invalid_certs boolean   (optional) Do not validate TLS certificates.  (false)

     store_flags_locally boolean           (optional) Store seen status locally in an sqlite3
                                           database.  (true)

     timeout integer                       (optional) Timeout to use for server connections in
                                           seconds.  A timeout of 0 seconds means there is no
                                           timeout.  (16)

     You have to explicitly state the groups you want to see in the mailboxes field.  Example:

     [accounts.sicpm.mailboxes]
       "sic.all" = {}

     To submit articles directly to the NNTP server, you must set the special value
     server_submission in the send_mail field.  Example:

     composing.send_mail = "server_submission"

   MAILBOXES
     alias String                          (optional) Show a different name for this mailbox in
                                           the UI.

     autoload boolean                      (optional) Load this mailbox on startup (true)

     collapsed boolean                     (optional) Collapse this mailbox subtree in menu.
                                           (false)

     subscribe boolean                     (optional) Watch this mailbox for updates.  (true)

     ignore boolean                        (optional) Silently insert updates for this mailbox,
                                           if any.  (false)

     usage boolean                         (optional) special usage of this mailbox.  Valid
                                           values are:
                                           -   Normal (default)
                                           -   Inbox
                                           -   Archive
                                           -   Drafts
                                           -   Flagged
                                           -   Junk
                                           -   Sent
                                           -   Trash
                                           otherwise usage is inferred from the mailbox title.
                                           If for example your Sent folder is not named "Sent",
                                           you must explicitly set it.

     conf_override boolean                 (optional) Override global settings for this mailbox.
                                           Available sections to override are pager,
                                           notifications, shortcuts, composing and the account
                                           options identity.  Example:

                                           [accounts."imap.example.com".mailboxes]
                                             "INBOX" = { index_style = "plain" }
                                             "INBOX/Lists/devlist" = { autoload = false, pager = { filter = "pygmentize -l diff -f 256"} }

     sort_order unsigned integer           (optional) Override sort order on the sidebar for this
                                           mailbox.  Example:

                                           [accounts."imap.example.com".mailboxes]
                                             "INBOX" = { index_style = "plain" }
                                             "INBOX/Sent" = { sort_order = 0 }
                                             "INBOX/Drafts" = { sort_order = 1 }
                                             "INBOX/Lists" = { sort_order = 2 }

     encoding String                       (optional) Override the default UTF-8 charset for the
                                           mailbox name.  Useful only for UTF-7 mailboxes.
                                           (utf7, utf-7, utf8, utf-8)

COMPOSING

   Composing specific configuration settings
     Default values are shown in parentheses.

     send_mail String|SmtpServerConf       Command to pipe new mail to (exit code must be 0 for
                                           success) or settings for an SMTP server connection.
                                           See section SMTP Connections for its fields.

     editor_command String                 Command to launch editor.  Can have arguments.  Draft
                                           filename is given as the last argument.  If it's
                                           missing, the environment variable EDITOR is looked up.

     embedded_pty boolean                  (optional) Embedded editor within meli.  Editor must
                                           be xterm compliant.  (false)

     format_flowed boolean                 (optional) Set format=flowed [RFC3676] in text/plain
                                           attachments.  (true)

     insert_user_agent boolean             (optional) Add meli User-Agent header in new drafts.
                                           (true)

     default_header_values hash table String[String]
                                           (optional) Default header values used when creating a
                                           new draft.  ({})

     wrap_header_preamble Option<(String, String)>
                                           (optional) Wrap header pre-ample when editing a draft
                                           in an editor.  This allows you to write non-plain text
                                           email without the preamble creating syntax errors.
                                           They are stripped when you return from the editor.
                                           The values should be a two element array of strings, a
                                           prefix and suffix.  This can be useful when for
                                           example you're writing Markdown; you can set the value
                                           to ["<!--", "-->"] which wraps the headers in an HTML
                                           comment.  (None)

     store_sent_mail boolean               (optional) Store sent mail after successful
                                           submission.  This setting is meant to be disabled for
                                           non-standard behaviour in Gmail, which auto-saves sent
                                           mail on its own.  (true)

     attribution_format_string String      (optional) The attribution line appears above the
                                           quoted reply text.  The format specifiers for the
                                           replied address are:
                                           -   %+f — the sender's name and email address.
                                           -   %+n — the sender's name (or email address, if no
                                               name is included).
                                           -   %+a — the sender's email address.
                                           The format string is passed to strftime(3) with the
                                           replied envelope's date.  (On %a, %0e %b %Y %H:%M, %+f
                                           wrote:%n)

     attribution_use_posix_locale boolean  (optional) Whether the strftime(3) call for the
                                           attribution string uses the POSIX locale instead of
                                           the user's active locale.  (true)

     forward_as_attachment boolean or ask  (optional) Forward emails as attachment? (Alternative
                                           is inline).  (ask)

     reply_prefix_list_to_strip [String]   (optional) Alternative lists of reply prefixes (etc.
                                           ["Re:", "RE:", ...]) to strip.
                                                 [Re:, RE:, Fwd:, Fw:, 回复:, 回覆:, SV:, Sv:,
                                                 VS:, Antw:, Doorst:, VS:, VL:, REF:, TR:, TR:,
                                                 AW:, WG:, ΑΠ:, Απ:, απ:, ΠΡΘ:, Πρθ:, πρθ:,
                                                 ΣΧΕΤ:, Σχετ:, σχετ:, ΠΡΘ:, Πρθ:, πρθ:, Vá:,
                                                 Továbbítás:, R:, I:, RIF:, FS:, BLS:, TRS:, VS:,
                                                 VB:, RV:, RES:, Res, ENC:, Odp:, PD:, YNT:,
                                                 İLT:, ATB:, YML:]

     reply_prefix String                   (optional) The prefix to use in reply subjects.  The
                                           default prefix is ‘Re:’.  (‘Re:’)

                                           RFC 2822, "Internet Message Format" has this to say on
                                           the matter:
                                                 When used in a reply, the field body MAY start with the string "Re: " (from
                                                 the Latin "res", in the matter of) followed by the contents of the "Subject:"
                                                 field body of the original message.

     custom_compose_hooks [{ name = String, command = String }]
                                           (optional) Custom compose-hooks that run shell
                                           scripts.  compose-hooks run before submitting an e-
                                           mail.  They perform draft validation and/or
                                           transformations.  If a custom hook exits with an error
                                           status or prints output to stdout and stderr, it will
                                           show up in the UI as a notification.

                                           Example:

                                           [composing]
                                           editor_cmd = '~/.local/bin/vim +/^$'
                                           embed = true
                                           custom_compose_hooks = [ { name ="spellcheck", command="aspell --mode email --dont-suggest --ignore-case list" }]

     disabled_compose_hooks [String]       (optional) Disabled compose-hooks.  compose-hooks run
                                           before submitting an e-mail.  They perform draft
                                           validation and/or transformations.  If a hook
                                           encounters an error or warning, it will show up as a
                                           notification.  The currently available hooks are:
                                           -   past-date-warn — Warn if Date header value is far
                                               in the past or future.
                                           -   important-header-warn — Warn if important headers
                                               (From, Date, To, Cc, Bcc) are missing or invalid.
                                           -   missing-attachment-warn — Warn if Subjector draft
                                               body mention attachments but they are missing.
                                           -   empty-draft-warn — Warn if draft has no subject
                                               and no body.

     signature_file Path                   (optional) Plain text file with signature that will
                                           pre-populate an email draft.  Signatures must be
                                           explicitly enabled to be used, otherwise this setting
                                           will be ignored.  (None)

     use_signature bool                    Pre-populate email drafts with signature, if any.
                                           meli will lookup the signature value in this order:
                                           1.   The signature_file setting.
                                           2.   ${XDG_CONFIG_DIR}/meli/<account>/signature
                                           3.   ${XDG_CONFIG_DIR}/meli/signature
                                           4.   ${XDG_CONFIG_DIR}/signature
                                           5.   ${HOME}/.signature
                                           6.   No signature otherwise.
                                           (false)

     signature_delimiter String            (optional) Signature delimiter, that is, text that
                                           will be prefixed to your signature to separate it from
                                           the email body.  (‘\n\n-- \n’)

SHORTCUTS

   Values corresponding to keyboard keys, keycodes
     Shortcuts can take the following values:

     -   Backspace
     -   Left
     -   Right
     -   Up
     -   Down
     -   Home
     -   End
     -   PageUp
     -   PageDown
     -   Delete
     -   Insert
     -   Enter
     -   Tab
     -   Esc
     -   F1..F12
     -   M-char
     -   C-char
     -   char

     Where char is a single character string, maximum 4 bytes long, like the corresponding type
     in Rust.

     In the next subsection, you will find lists for each shortcut category.  The headings before
     each list indicate the map key of the shortcut list.  For example for the first list titled
     general the configuration is typed as follows:

     [shortcuts.general]
     next_tab = 'T'

     and for listing:

     [shortcuts.listing]
     open_entry = "Enter"
     exit_entry = 'i'

     commands

     In addition, each shortcuts section supports a TOML array of commands to associate a key to
     an array of COMMAND mode commands.

     [shortcuts.listing]
     commands = [ { command = [ "tag remove trash", "flag unset trash" ], shortcut = "D" },
                  { command = [ "tag add trash", "flag set trash" ], shortcut = "d" } ]

   Shortcut configuration settings
     Default values are shown in parentheses.

     general

     toggle_help                           Toggle help and shortcuts view.  (?)

     enter_command_mode                    Enter COMMAND mode.  (:)

     quit                                  Quit meli.  (q)

     go_to_tab                             Go to the nth tab (M-n)

     next_tab                              Go to the next tab.  (T)

     scroll_right                          Generic scroll right (catch-all setting) (l)

     scroll_left                           Generic scroll left (catch-all setting) (h)

     scroll_up                             Generic scroll up (catch-all setting) (k)

     scroll_down                           Generic scroll down (catch-all setting) (j)

     next_page                             Go to next page.  (catch-all setting) (PageDown)

     prev_page                             Go to previous page.  (catch-all setting) (PageUp)

     home_page                             Go to first page.  (catch-all setting) (Home)

     end_page                              Go to last page. (catch-all setting) (End)

     open_entry                            Open list entry. (catch-all setting) (Enter)

     info_message_next                     Show next info message, if any.  (>)

     info_message_previous                 Show previous info message, if any.  (<)

     focus_in_text_field                   Focus on a text field.  (Enter)

     next_search_result                    Scroll to next search result.  (n)

     previous_search_result                Scroll to previous search result.  (N)

     listing

     scroll_up                             Scroll up list.  (k)

     scroll_down                           Scroll down list.  (j)

     next_page                             Go to next page.  (PageDown)

     prev_page                             Go to previous page.  (PageUp)

     new_mail                              Start new mail draft in new tab.  (m)

     next_account                          Go to next account.  (H)

     prev_account                          Go to previous account.  (L)

     next_mailbox                          Go to next mailbox.  (J)

     prev_mailbox                          Go to previous mailbox.  (K)

     open_mailbox                          Open selected mailbox (Enter)

     toggle_mailbox_collapse               Toggle mailbox visibility in menu.  (Space)

     search                                Search within list of e-mails.  (/)

     refresh                               Manually request a mailbox refresh.  (F5)

     set_seen                              Set thread as seen.  (n)

     send_to_trash                         Send entry to trash folder.  (D)

     union_modifier                        Union modifier.  (C-u)

     diff_modifier                         Difference modifier.  (C-d)

     intersection_modifier                 Intersection modifier.  (i)

     select_entry                          Select (or toggle) thread entry.  (V)

     select_motion                         Perform select motion with a movement.  (v)

     increase_sidebar                      Increase sidebar width.  (C-f)

     decrease_sidebar                      Decrease sidebar width.  (C-d)

     next_entry                            When reading a mail item, change focus on next entry
                                           according to the current sorting.  (C-n)

     previous_entry                        When reading a mail item, change focus on previous
                                           entry according to the current sorting.  (C-p)

     toggle_menu_visibility                Toggle visibility of side menu in mail list.  (`)

     focus_left                            Switch focus on the left.  (Left)

     focus_right                           Switch focus on the right.  (Right)

     exit_entry                            Exit e-mail entry.  (i)

     open_entry                            Open e-mail entry.  (Enter)

     pager

     page_down                             Go to next page.  (PageDown)

     page_up                               Go to previous page.  (PageUp)

     scroll_down                           Scroll down pager.  (j)

     scroll_up                             Scroll up pager.  (k)

     select_filter                         Select content filter.  (f)

                                           See also named_filters setting.

     contact-list

     scroll_up                             Scroll up list.  (k)

     scroll_down                           Scroll down list.  (j)

     create_contact                        Create new contact.  (c)

     edit_contact                          Edit contact under cursor.  (e)

     export_contact                        Export contact under cursor to .vcf.  (E)

     delete_contact                        Delete contact under cursor.  (d)

     mail_contact                          Mail contact under cursor.  (m)

     next_account                          Go to next account.  (H)

     prev_account                          Go to previous account.  (L)

     toggle_menu_visibility                Toggle visibility of side menu in mail list.  (`)

     composing

     edit                                  Edit mail.  (e)

     send_mail                             Deliver draft to mailer (s)

     scroll_up                             Change field focus.  (k)

     scroll_down                           Change field focus.  (j)

     envelope-view

     To select an attachment, type its index (you will see the typed result in the command buffer
     on the bottom right of the status line), then issue the corresponding command.

     add_addresses_to_contacts             Select addresses from envelope to add to contacts.
                                           (c)

     edit                                  Open envelope in composer.  (e)

     go_to_url                             Go to url of given index (with the command
                                           url_launcher setting in PAGER section) (g)

     open_attachment                       Opens selected attachment with xdg-open (a)

     open_mailcap                          Opens selected attachment according to its mailcap
                                           entry.  See meli(1) FILES for the mailcap file
                                           locations.  (m)

     open_html                             Opens html attachment in the default browser.  (v)

     reply                                 Reply to envelope.  (R)

     reply_to_author                       Reply to author.  (C-r)

     reply_to_all                          Reply to all/Reply to list/Follow up.  (C-g)

     forward                               Forward email.  (C-f)

     return_to_normal_view                 Return to envelope if viewing raw source or
                                           attachment.  (r)

     toggle_expand_headers                 Expand extra headers (References and others) (h)

     toggle_url_mode                       Toggles url open mode.  When active, it prepends an
                                           index next to each url that you can select by typing
                                           the index and open by issuing go_to_url (u)

     view_raw_source                       View raw envelope source in a pager.  (M-r)

     change_charset                        Force attachment charset for decoding.  (d)

     thread-view

     scroll_up                             Scroll up list.  (k)

     scroll_down                           Scroll down list.  (j)

     collapse_subtree                      collapse thread branches.  (h)

     next_page                             Go to next page.  (PageDown)

     prev_page                             Go to previous page.  (PageUp)

     reverse_thread_order                  reverse thread order.  (C-r)

     toggle_mailview                       toggle mail view visibility.  (p)

     toggle_threadview                     toggle thread view visibility.  (t)

     toggle_layout                         Toggle between horizontal and vertical layout.
                                           (Space)

NOTIFICATIONS

   Notification configuration settings
     Default values are shown in parentheses.

     enable boolean                        Enable notifications.  (true)

     script String                         (optional) Script to pass notifications to, with title
                                           as 1st arg and body as 2nd (none)

     new_mail_script String                (optional) A command to pipe new mail notifications
                                           through (preferred over script), with title as 1st arg
                                           and body as 2nd.  (none)

     xbiff_file_path String                (optional) File that gets its size updated when new
                                           mail arrives.  (none)

     play_sound boolean                    (optional) Play theme sound in notifications if
                                           possible.  (false)

     sound_file String                     (optional) Play sound file in notifications if
                                           possible.  (none)

PAGER

   Pager (viewing text) configuration settings
     Default values are shown in parentheses.

     sticky_headers boolean                (optional) Always show headers when scrolling.
                                           (false)

     html_filter String                    (optional) Pipe html attachments through this filter
                                           before display (none)

     html_open String                      (optional) A command to open html files.  (none)

     filter String                         (optional) A command to pipe mail output through for
                                           viewing in pager.

     named_filters String[String]          (optional) Named filter commands to use at will.
                                           (empty)

                                           Show menu with an empty filter command.  Example:

                                           [pager]
                                           named_filters = { diff = "pygmentize -l diff -f 256", par = "par 72" }

     format_flowed boolean                 (optional) Respect format=flowed (true)

     split_long_lines boolean              (optional) Split long lines that would overflow on the
                                           x axis.  (true)

     minimum_width num                     (optional) Minimum text width in columns.  (80)

     auto_choose_multipart_alternative boolean
                                           (optional) Choose text/html alternative if text/plain
                                           is empty in multipart/alternative attachments.  (true)

     show_date_in_my_timezone boolean      (optional) Show Date: in local timezone (true)

     url_launcher String                   (optional) A command to launch URLs with.  The URL
                                           will be given as the first argument of the command.
                                           (xdg-open)

     show_extra_headers [String]           (optional) Extra headers to display, if present, in
                                           the default header preamble of the pager.  (empty)

                                           This setting is useful especially when used per-folder
                                           or per-account.  For example, if you use rss2email
                                           (See r2e(1)) the e-mail you will receive will have the
                                           X-RSS-Feed header by default.  You can show them only
                                           in the folder where you keep your feed items:

                                           [accounts."personal".mailboxes]
                                           INBOX = {}
                                           "INBOX/Sent" = { sort_order=0 }
                                           "INBOX/Feeds" = { pager.show_extra_headers = ["X-RSS-Feed"] }

LISTING

   Listing (lists of e-mail entries in a mailbox) configuration settings
     Default values are shown in parentheses.

     show_menu_scrollbar boolean           (optional)
                                            Show auto-hiding scrollbar in accounts sidebar menu.
                                           (true)

     datetime_fmt String                   (optional) Datetime formatting passed verbatim to
                                           strftime(3).  (%Y-%m-%d %T)

     recent_dates Boolean                  (optional) Show recent dates as ‘X
                                           {minutes,hours,days} ago’ , up to 7 days. (true)

     filter Query                          (optional) Show only envelopes matching this query.
                                           (For query syntax see meli(1) QUERY ABNF SYNTAX)
                                           (None)

                                           Example:

                                           filter = "not flags:seen" # show only unseen messages

     index_style String                    Sets 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 │
                                           └──────────────┴─────────────────────────────────────────────────┘
     sidebar_mailbox_tree_has_sibling String
                                           (optional) Sets the string to print in the mailbox
                                           tree for a level where its root has a sibling.  See
                                           example below for a clear explanation and examples.

     sidebar_mailbox_tree_no_sibling String
                                           (optional) Sets the string to print in the mailbox
                                           tree for a level where its root has no sibling.

     sidebar_mailbox_tree_has_sibling_leaf String
                                           (optional) Sets the string to print in the mailbox
                                           tree for a leaf level where its root has a sibling.

     sidebar_mailbox_tree_no_sibling_leaf String
                                           (optional) Sets the string to print in the mailbox
                                           tree for a leaf level where its root has no sibling.

     sidebar_divider char                  (optional) Sets the character to print as the divider
                                           between the accounts list and the message list.

     sidebar_ratio Integer                 (optional) This is the width of the right container to
                                           the entire screen width.  (90)

     unseen_flag Option<String>            Flag to show if thread entry contains unseen mail.
                                           ()

     thread_snoozed_flag Option<String>    Flag to show if thread has been snoozed.
                                           ("💤\u{FE0E}") [Rendered as: r##"💤︎"##]

     selected_flag Option<String>          Flag to show if thread entry has been selected.
                                           ("☑️ \u{2007}") [Rendered as: r##"☑️ "##]

     attachment_flag Option<String>        Flag to show if thread entry contains attachments.
                                           ("📎\u{FE0E}") [Rendered as: r##"📎︎"##]

     highlight_self_flag Option<String>    Flag to show if any thread entry contains your address
                                           as a receiver.  Useful to make mailing list threads
                                           that CC you stand out.  ()

     highlight_self boolean                Show highlight_self_flag or not.  (false)

     thread_subject_pack boolean           Should threads with differentiating Subjects show a
                                           list of those subjects on the entry title?  (true)

     threaded_repeat_identical_from_values boolean
                                           In threaded listing style, repeat identical From
                                           column values within a thread.  Not repeating adds
                                           empty space in the From column which might result in
                                           less visual clutter.  (false)

     relative_menu_indices boolean         Show relative indices in menu mailboxes to quickly
                                           help with jumping to them.  (true)

     relative_list_indices boolean         Show relative indices in listings to quickly help with
                                           jumping to them.  (true)

     hide_sidebar_on_launch boolean        Start app with sidebar hidden.  (false)

     mail_view_divider char                Character to show in the divider space between mail
                                           view and listing.  (' ')

     thread_layout auto | vertical | horizontal
                                           Force specific layout in thread view.  The layout can
                                           also be toggled at runtime with the
                                           listing.toggle_layout shortcut.  (auto)

   Examples of sidebar mailbox tree customization
     The default values

      has_sibling = " "
      no_sibling = " ";
      has_sibling_leaf = " "
      no_sibling_leaf = " "

     render a mailbox tree like the following:

     0  Inbox 3
     1   Archive
     2   Drafts
     3   Lists
     4    example-list-a
     5    example-list-b
     6   Sent
     7   Spam
     8   Trash

     Other possible trees:

     has_sibling = " ┃"
     no_sibling = "  "
     has_sibling_leaf = " ┣━"
     no_sibling_leaf = " ┗━"

     0  Inbox 3
     1   ┣━Archive
     2   ┣━Drafts
     3   ┣━Lists
     4   ┃ ┣━example-list-a
     5   ┃ ┗━example-list-b
     6   ┣━Sent
     7   ┣━Spam
     8   ┗━Trash

     A completely ASCII one:

     has_sibling = " |"
     no_sibling = "  "
     has_sibling_leaf = " |\_"
     no_sibling_leaf = " \_"

     0  Inbox 3
     1   |\_Archive
     2   |\_Drafts
     3   |\_Lists
     4   | |\_example-list-a
     5   |  \_example-list-b
     6   |\_Sent
     7   |\_Spam
     8    \_Trash

TAGS

   Tags (e-mail metadata in backends that support them) configuration settings
     Default values are shown in parentheses.

     colours hash table String[Color]      (optional) Set UI colors for tags

     ignore_tags Array String              (optional) Hide tags (not the tagged messages
                                           themselves)

     Example:

     [tags]
     # valid inputs: #HHHHHH, #ABC -> #AABBCC, XTERM_NAME, 0-255 byte
     colors = { signed="#Ff6600", replied="DeepSkyBlue4", draft="#f00", replied="8" }
     [accounts.dummy]
     ...
       [accounts.dummy.mailboxes]
       # per mailbox override:
       "INBOX" = { tags.ignore_tags=["inbox", ] }

PGP

     Default values are shown in parentheses.

     auto_verify_signatures boolean        Auto verify signed e-mail according to RFC3156 (true)

     auto_decrypt boolean                  (optional) Always decrypt encrypted e-mail (true)

     auto_sign boolean                     (optional) Always sign sent messages (false)

     auto_encrypt boolean                  (optional) Always encrypt sent messages (false)

     sign_key String                       (optional) ID of key to be used for signatures (none)

     decrypt_key String                    (optional) ID of key to be used for decryption (none)

     encrypt_key String                    (optional) ID of key to be used for encryption (none)

     auto_remote_lookup boolean            (optional) Allow remote lookups (false)

     remote_lookup_mechanisms LocateKey    (optional) Remote lookup mechanisms.  Use comma to
                                           separate values.  (Local,WKD)

                                           Possible mechanisms:
                                           -   cert
                                           -   pka
                                           -   dane
                                           -   wkd
                                           -   ldap
                                           -   keyserver
                                           -   keyserver-url
                                           -   local

TERMINAL

   Note about emojis and other multi-width characters in string values
     Some useful unicode combining marks (invisible characters that modify the presentation of
     visible characters before them) are:

     \u{FE0E} Emoji variation sequence select 15: renders an emoji as text style (monochrome)
     \u{FE0F} Emoji variation sequence select 16: renders an emoji in color
     \u{2007} Figure space, a space character with the width of a digit in a monospace typeface

   Terminal configuration settings
     Default values are shown in parentheses.

     theme String                          (optional) Theme name to use.  (dark)

     ascii_drawing boolean                 (optional) If true, box drawing will be done with
                                           ASCII characters.  (false)

     use_color boolean                     (optional) If false, no ANSI colors are used.  (true)

     force_text_presentation boolean       (optional) If true, text presentations of color
                                           symbols and emoji will be enforced as much as
                                           possible.  Might not work on all non-text symbols and
                                           is experimental.  (false)

     window_title String                   (optional) Set window title in xterm compatible
                                           terminals An empty string means no window title is
                                           set.  (meli)

     file_picker_command String            (optional) Set command that prints file paths in
                                           stdout, separated by NUL bytes.  Used with
                                           add-attachment-file-picker when composing new mail.
                                           (None)

     themes hash table String[String[Attribute]]
                                           Define UI themes.  See meli-themes(5) for details.

                                           [terminal]
                                           theme = "themeB"

                                           [terminal.themes.themeA]
                                           "mail.view.body" = {fg = "HotPink3", bg = "LightSalmon1"}
                                           ...
                                           [terminal.themes.themeB]
                                           "mail.view.body" = {fg = "CadetBlue", bg = "White"}
                                           ...
                                           [terminal.themes.themeC]
                                           ...

     use_mouse boolean                     Use mouse events.  This will disable text selection,
                                           but you will be able to resize some widgets.  This
                                           setting can be toggled with toggle mouse.  (false)

     mouse_flag String                     String to show in status bar if mouse is active.  (🖱️)

     progress_spinner_sequence Either < Integer, ProgressSpinner >
                                           Choose between 37 built in sequences (integers between
                                           0-36) or define your own list of strings for the
                                           progress spinner animation.  Set to an empty array to
                                           disable the progress spinner.  (20)

                                           Built-in sequences are:

                                           0   ["-", "\", "|", "/"]
                                           1   ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
                                           2   ["⣀", "⣄", "⣤", "⣦", "⣶", "⣷", "⣿"]
                                           3   ["⣀", "⣄", "⣆", "⣇", "⣧", "⣷", "⣿"]
                                           4   ["○", "◔", "◐", "◕", "⬤"]
                                           5   ["□", "◱", "◧", "▣", "■"]
                                           6   ["□", "◱", "▨", "▩", "■"]
                                           7   ["□", "◱", "▥", "▦", "■"]
                                           8   ["░", "▒", "▓", "█"]
                                           9   ["░", "█"]
                                           10  ["⬜", "⬛"]
                                           11  ["▱", "▰"]
                                           12  ["▭", "◼"]
                                           13  ["▯", "▮"]
                                           14  ["◯", "⬤"]
                                           15  ["⚪", "⚫"]
                                           16  ["▖", "▗", "▘", "▝", "▞", "▚", "▙", "▟", "▜", "▛"]
                                           17  ["|", "/", "-", "\"]
                                           18  [".", "o", "O", "@", "*"]
                                           19  ["◡◡", "⊙⊙", "◠◠", "⊙⊙"]
                                           20  ["◜ ", " ◝", " ◞", "◟ "]
                                           21  ["←", "↖", "↑", "↗", "→", "↘", "↓", "↙"]
                                           22  ["▁", "▃", "▄", "▅", "▆", "▇", "█", "▇", "▆", "▅", "▄", "▃"]
                                           23  [ "▉", "▊", "▋", "▌", "▍", "▎", "▏", "▎", "▍", "▌", "▋", "▊", "▉" ]
                                           24  ["▖", "▘", "▝", "▗"]
                                           25  ["▌", "▀", "▐", "▄"]
                                           26  ["┤", "┘", "┴", "└", "├", "┌", "┬", "┐"]
                                           27  ["◢", "◣", "◤", "◥"]
                                           28  ["⠁", "⠂", "⠄", "⡀", "⢀", "⠠", "⠐", "⠈"]
                                           29  ["⢎⡰", "⢎⡡", "⢎⡑", "⢎⠱", "⠎⡱", "⢊⡱", "⢌⡱", "⢆⡱"]
                                           30  [".", "o", "O", "°", "O", "o", "."]
                                           31  ["㊂", "㊀", "㊁"]
                                           32  ["💛 ", "💙 ", "💜 ", "💚 ", "❤️ "]
                                           33  [ "🕛 ", "🕐 ", "🕑 ", "🕒 ", "🕓 ", "🕔 ", "🕕 ", "🕖 ", "🕗 ", "🕘 ", "🕙 ", "🕚 " ]
                                           34  ["🌍 ", "🌎 ", "🌏 "]
                                           35  [ "[    ]", "[=   ]", "[==  ]", "[=== ]", "[ ===]", "[  ==]", "[   =]", "[    ]", "[   =]", "[  ==]", "[ ===]", "[====]", "[=== ]", "[==  ]", "[=   ]" ]
                                           36  ["🌑 ", "🌒 ", "🌓 ", "🌔 ", "🌕 ", "🌖 ", "🌗 ", "🌘 "]

                                           Or, define an array of strings each consisting of a
                                           frame in the progress sequence indicator for a custom
                                           spinner:

                                           interval_ms u64                       (optional) Frame
                                                                                 interval.  (50)

                                           frames [String]                       The animation
                                                                                 frames.

                                           Example:

                                           progress_spinner_sequence = { interval_ms = 150, frames = [ "-", "=", "≡" ] }

LOG

   Logging configuration settings
     Default values are shown in parentheses.

     log_file String                       (optional) path of the log file
                                           ($XDG_DATA_HOME/meli/meli.log)

     maximum_level String                  (optional) maximum level of messages to log.  All
                                           levels less or equal to the maximum_level will be
                                           appended to the log file.  Available levels are, in
                                           partial order:
                                           -   OFF
                                           -   ERROR
                                           -   WARN
                                           -   INFO
                                           -   DEBUG
                                           -   TRACE
                                           This means that to turn logging off, set maximum_level
                                           to OFF.  (INFO)

SMTP Connections

   SMTP configuration settings
     Default values are shown in parentheses.

     hostname String                       server hostname

     port Integer                          server port

     envelope_from String                  (optional) address to set as sender in SMTP
                                           transactions (none)

     auth SmtpAuth                         SMTP server authentication.  See SmtpAuth subsection.

     security SmtpSecurity                 (optional) gpg binary name or file location to use.
                                           (see SmtpSecurity subsection)

     extensions SmtpExtensions             (optional) set support for SMTP extensions if they are
                                           advertised by the server.  (see SmtpExtensions
                                           subsection)

   SmtpAuth
     type none | auto | xoauth2

     For type "auto":

     username String

     password SmtpPassword

     require_auth boolean                  (optional) require authentication in every case.
                                           (true)

     For type "xoauth2":

     token_command String                  Command to evaluate that returns an XOAUTH2 token.

     require_auth boolean                  (optional) require authentication in every case.
                                           (true)

     Examples:

     auth = { type = "auto", username = "user", password = { type = "raw", value = "hunter2" } }

     auth = { type = "auto", username = "user", password = "hunter2" }

     auth = { type = "none" }

     For Gmail (see Gmail OAUTH2 for details on the authentication token command):

     auth = { type = "xoauth2", token_command = "TOKEN=$(python3 oauth2.py --user=xxx@gmail.com --quiet --client_id=1038[...].apps.googleusercontent.com --client_secret=[..] --refresh_token=[..] && python3 oauth2.py --user=xxx@gmail.com --generate_oauth2_string --quiet --access_token=$TOKEN" }

   SmtpPassword
     type raw | command_evaluation

     value String                          Either a raw password string, or command to execute.

     Examples:

     password = { type = "raw", value = "hunter2" }

     password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/user.gpg" }

   SmtpSecurity
     Default security type is auto.

     type none | auto | starttls | tls

     danger_accept_invalid_certs boolean   Accept invalid SSL / TLS certificates (false)

   SmtpExtensions
     pipelining boolean                    RFC2920 (true)

     chunking boolean                      RFC3030 (true)

     prdr boolean                          draft-hall-prdr-00 (true)

     dsn_notify String                     RFC3461 (FAILURE)

SEE ALSO

     meli(1), meli-themes(5)

STANDARDS

     TOML Standard v.0.5.0 https://toml.io/en/v0.5.0

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