.github | ||
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
install.sh | ||
LICENSE | ||
README.md |
📫 Himalaya
Minimalist CLI email client, written in Rust.
Table of contents
Motivation
Bringing emails to your terminal is a pain. The mainstream TUI, (neo)mutt, takes time to configure. The default mapping is not intuitive when coming from the Vim environment. It is even scary to use at the beginning, since you are dealing with sensitive data!
The aim of Himalaya is to extract the email logic into a simple CLI API that can be used either directly for the terminal or from various interfaces. It gives users more flexibility.
Installation
curl -sSL https://raw.githubusercontent.com/soywod/himalaya/master/install.sh | bash
See wiki section for more information.
Configuration
# ~/.config/himalaya/config.toml
name = "Your full name"
downloads_dir = "/abs/path/to/downloads"
# Himalaya supports the multi-account
# Each account should be inside a TOML section
[gmail]
default = true
email = "my.email@gmail.com"
imap_host = "imap.gmail.com"
imap_port = 993
imap_login = "p.durant@gmail.test.com"
imap_passwd_cmd = "pass show gmail"
smtp_host = "smtp.gmail.com"
smtp_port = 487
smtp_login = "p.durant@gmail.test.com"
smtp_passwd_cmd = "pass show gmail"
[posteo]
name = "Your overriden full name"
downloads_dir = "/abs/path/to/overriden/downloads"
email = "my.email@posteo.net"
imap_host = "posteo.de"
imap_port = 993
imap_login = "my.email@posteo.net"
imap_passwd_cmd = "security find-internet-password -gs posteo -w"
smtp_host = "posteo.de"
smtp_port = 487
smtp_login = "my.email@posteo.net"
smtp_passwd_cmd = "security find-internet-password -gs posteo -w"
# [other account]
# ...
See wiki section for more information.
Usage
Himalaya 0.1.0
soywod <clement.douin@posteo.net>
📫 Minimalist CLI email client
USAGE:
himalaya [OPTIONS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-a, --account <STRING> Name of the config file to use
SUBCOMMANDS:
attachments Downloads all attachments from an email
forward Forwards an email
help Prints this message or the help of the given subcommand(s)
list Lists emails sorted by arrival date
mailboxes Lists all available mailboxes
read Reads text bodies of an email
reply Answers to an email
search Lists emails matching the given IMAP query
write Writes a new email
See wiki section for more information.
List mailboxes
himalaya-mailboxes
Lists all available mailboxes
USAGE:
himalaya mailboxes
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
See wiki section for more information.
List emails
himalaya-list
Lists emails sorted by arrival date
USAGE:
himalaya list [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
-p, --page <INT> Page number [default: 0]
-s, --size <INT> Page size [default: 10]
See wiki section for more information.
Search emails
himalaya-search
Lists emails matching the given IMAP query
USAGE:
himalaya search [OPTIONS] <QUERY>...
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
-p, --page <INT> Page number [default: 0]
-s, --size <INT> Page size [default: 10]
ARGS:
<QUERY>... IMAP query (see https://tools.ietf.org/html/rfc3501#section-6.4.4)
See wiki section for more information.
Download email attachments
himalaya-attachments
Downloads all attachments from an email
USAGE:
himalaya attachments [OPTIONS] <UID>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
ARGS:
<UID> UID of the email
See wiki section for more information.
Read email
himalaya-read
Reads text bodies of an email
USAGE:
himalaya read [OPTIONS] <UID>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
-t, --mime-type <STRING> MIME type to use [default: plain] [possible values: plain, html]
ARGS:
<UID> UID of the email
See wiki section for more information.
Write email
himalaya-write
Writes a new email
USAGE:
himalaya write
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
See wiki section for more information.
Reply email
himalaya-reply
Answers to an email
USAGE:
himalaya reply [FLAGS] [OPTIONS] <UID>
FLAGS:
-h, --help Prints help information
-a, --all Including all recipients
-V, --version Prints version information
OPTIONS:
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
ARGS:
<UID> UID of the email
See wiki section for more information.
Forward email
himalaya-forward
Forwards an email
USAGE:
himalaya forward [OPTIONS] <UID>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
ARGS:
<UID> UID of the email
See wiki section for more information.
Credits
- IMAP RFC3501
- Iris, the himalaya predecessor
- Neomutt
- Alpine
- rust-imap