CLI to manage emails
Go to file
Clément DOUIN 158bc86cfa
release v0.5.6 (#301)
* make use of mailparse::MailAddr

* move addr logic to a dedicated file

* update changelog

* add suffix to downoalded attachments with same name (#204)

* implement sort command (#34)

* introduce backends structure (#296)

* implement backend structure poc

* improve config namings

* improve account namings and structure

* rename imap vars to backend

* maildir backend (#299)

* refactor config system, preparing maildir backend

* rename deserializable by deserialized

* wrap backend in a Box

* reword backend trait methods

* merge list envelopes functions

* remove find_raw_msg from backend trait

* remove expunge fn from backend trait

* rename add_msg from backend trait

* init maildir integration tests, start impl maildir backend fns

* implement remaining methods maildir backend, refactor trait

* improve backend trait, add copy and move fns

* remove usage of Mbox in handlers

* reorganize backends folder structure

* move mbox out of domain folder

* rename mbox entities

* improve mbox structure

* remove unused files, move smtp module

* improve envelope, impl get_envelopes for maildir

* link maildir mail entry id to envelope id

* use erased-serde to make backend get_mboxes return a trait object

* remove unused mbox files

* rename Output trait

* make get_envelopes return a trait object

* remove unused impl for imap envelope

* update backend return signature with Box

* replace impl from imap::Fetch to mailparse::ParsedMail

* split flags by backends

* remove unused flags from msg

* remove remaining flags from domain

* impl maildir copy and move, improve maildir e2e tests

* set up imap backend e2e tests

* move domain/msg to msg

* repair broken tests

* fix maildir envelopes encoding issues

* add date column to maildir envelopes

* implement maildir list pagination

* improve maildir subdir path management

* add pgp and maildir features to readme

* update changelog

* bump version v0.5.6
2022-02-22 16:54:39 +01:00
.github release v0.5.6 (#301) 2022-02-22 16:54:39 +01:00
.vscode add nix support (#76) 2021-04-18 00:06:11 +02:00
assets release v0.5.2 (#282) 2022-02-02 02:21:35 +01:00
src release v0.5.6 (#301) 2022-02-22 16:54:39 +01:00
tests release v0.5.6 (#301) 2022-02-22 16:54:39 +01:00
vim release v0.5.4 (#285) 2022-02-05 00:29:57 +01:00
.gitignore release v0.5.2 (#282) 2022-02-02 02:21:35 +01:00
Cargo.lock release v0.5.6 (#301) 2022-02-22 16:54:39 +01:00
Cargo.toml release v0.5.6 (#301) 2022-02-22 16:54:39 +01:00
CHANGELOG.md release v0.5.6 (#301) 2022-02-22 16:54:39 +01:00
CONTRIBUTING.md release v0.5.5 (#290) 2022-02-08 14:50:09 +01:00
default.nix refactor msg model (#173) 2021-09-11 00:35:22 +02:00
flake.lock release v0.5.2 (#282) 2022-02-02 02:21:35 +01:00
flake.nix release v0.5.2 (#282) 2022-02-02 02:21:35 +01:00
install.sh fix install.sh bin name 2021-05-08 22:52:43 +02:00
LICENSE release v0.5.4 (#285) 2022-02-05 00:29:57 +01:00
README.md release v0.5.6 (#301) 2022-02-22 16:54:39 +01:00
rustfmt.toml refactor msg model (#173) 2021-09-11 00:35:22 +02:00
shell.nix refactor msg model (#173) 2021-09-11 00:35:22 +02:00

📫 Himalaya

Command-line interface for email management

The project is under active development. Do not use in production before the v1.0.0.

image

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

homebrew crates

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 = """
Cordialement,
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
  • IMAP and Maildir support (POP and Notmuch are coming soon)
  • PGP end-to-end encryption
  • IDLE mode for real-time notifications
  • Vim plugin
  • Completions for bash/zsh/fish
  • JSON output

See the wiki for all the features.

Sponsoring

github paypal ko-fi buy-me-a-coffee liberapay

Credits