mirror of
https://github.com/soywod/himalaya.git
synced 2024-07-05 17:15:12 +00:00
0.5.0 came with the amazing option of reading the mail in the same view. The issue with this is, if you go back to the message list and read some new mail, it opens a new pane to read the new mail. This change follows the path of modern mail readers which have one pane to load the email in. Technically, this change closes any open "Himalaya read message" pane before creating a new one. This close-open should create the illusion of having the same pane reload the content. A possible extension of this would be to clear the contents of the pane, and re-use the same pane to load the new message. A good time to go this extension is if Himalaya chooses to use persistent connections to the mail server. |
||
---|---|---|
.github | ||
.vscode | ||
assets | ||
src | ||
tests | ||
vim | ||
wiki@061a644f0e | ||
.gitignore | ||
.gitmodules | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
install.sh | ||
LICENSE | ||
README.md | ||
rustfmt.toml | ||
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