mirror of
https://github.com/soywod/himalaya.git
synced 2024-11-24 20:10:23 +00:00
CLI to manage emails
c9e1609ea9
$ cargo update -p lettre --aggressive Updating crates.io index Updating aho-corasick v0.7.15 -> v0.7.18 Removing bytes v1.0.1 Updating cc v1.0.66 -> v1.0.67 Adding fastrand v1.4.1 Removing getrandom v0.1.15 Removing http v0.2.3 Removing httparse v1.3.5 Updating httpdate v0.3.2 -> v1.0.0 Removing hyperx v1.3.0 Updating idna v0.2.0 -> v0.2.3 Removing language-tags v0.2.2 Updating lettre v0.10.0-beta.3 -> v0.10.0-rc.1 Updating libc v0.2.88 -> v0.2.94 Updating lock_api v0.4.3 -> v0.4.4 Updating memchr v2.3.4 -> v2.4.0 Updating native-tls v0.2.6 -> v0.2.7 Updating once_cell v1.5.2 -> v1.7.2 Updating openssl v0.10.32 -> v0.10.34 Updating openssl-probe v0.1.2 -> v0.1.4 Updating openssl-sys v0.9.60 -> v0.9.63 Updating parking_lot_core v0.8.2 -> v0.8.3 Removing percent-encoding v2.1.0 Updating quoted_printable v0.4.2 -> v0.4.3 Removing rand v0.7.3 Removing rand_chacha v0.2.2 Removing rand_core v0.5.1 Removing rand_hc v0.2.0 Adding redox_syscall v0.2.8 Updating regex v1.4.2 -> v1.5.4 Updating regex-syntax v0.6.21 -> v0.6.25 Updating security-framework v2.0.0 -> v2.2.0 Updating security-framework-sys v2.0.0 -> v2.2.0 Updating smallvec v1.6.0 -> v1.6.1 Updating tempfile v3.1.0 -> v3.2.0 Removing thread_local v1.0.1 Updating tinyvec v1.1.0 -> v1.2.0 Removing unicase v2.6.0 Updating unicode-bidi v0.3.4 -> v0.3.5 Updating unicode-normalization v0.1.16 -> v0.1.17 Updating vcpkg v0.2.11 -> v0.2.12 Updating version_check v0.9.2 -> v0.9.3 Removing wasi v0.9.0+wasi-snapshot-preview1 |
||
---|---|---|
.github | ||
.vscode | ||
src | ||
tests | ||
vim | ||
wiki@5f3d7ed351 | ||
.gitignore | ||
.gitmodules | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
install.sh | ||
LICENSE | ||
README.md | ||
shell.nix |
📫 Himalaya
CLI email client written in Rust.
The project is under active development. Do not use in production before the
v1.0.0
(see the roadmap).
Motivation
Bringing emails to the terminal is a pain. First, because they are sensitive data. Secondly, the existing TUIs (Mutt, NeoMutt, Alpine, aerc…) are really hard to configure. They require time and patience.
The aim of Himalaya is to extract the email logic into a simple (yet solid) CLI API that can be used directly from the terminal, from scripts, from UIs… Possibilities are endless!
Installation
# As root:
curl -sSL https://raw.githubusercontent.com/soywod/himalaya/master/install.sh | sudo sh
# As a regular user:
curl -sSL https://raw.githubusercontent.com/soywod/himalaya/master/install.sh | PREFIX=~/.local sh
See the wiki for other installation methods.
Configuration
# ~/.config/himalaya/config.toml
name = "Your full name"
downloads-dir = "/abs/path/to/downloads"
signature = """
--
Regards,
"""
[gmail]
default = true
email = "your.email@gmail.com"
imap-host = "imap.gmail.com"
imap-port = 993
imap-login = "your.email@gmail.com"
imap-passwd-cmd = "pass show gmail"
smtp-host = "smtp.gmail.com"
smtp-port = 465
smtp-login = "your.email@gmail.com"
smtp-passwd-cmd = "security find-internet-password -gs gmail -w"
See the wiki for all the options.
Features
- Mailbox listing
- Email listing and filtering
- Email composition based on
$EDITOR
- Email manipulation (copy/move/delete)
- Multi-accounting
- IDLE mode for real-time notifications
- Vim plugin
- Completions for bash/zsh/fish
- JSON output
- …
See the wiki for all the features.
Sponsoring
Credits
- IMAP RFC3501
- Iris, the himalaya predecessor
- isync, an email synchronizer for offline usage
- NeoMutt, an email terminal user interface
- Alpine, an other email terminal user interface
- mutt-wizard, a tool over NeoMutt and isync
- rust-imap, a rust IMAP lib