CLI to manage emails
Find a file
Clément DOUIN 694173b534
release v0.7.0 (#433)
* update codebase with email lib changes (#431)

update himalaya-lib, rename remaining mbox vars

add missing methods from lib

update changelog

* fixed missing folder aliases #430

* improve README links

* fix README repology link

* fix README repology table

* fix README repology table 2

* center README repology table

* fix README cosmetic issues

* fix README cosmetic issues 2

* fix README title

* fix README wiki links

* fix lock file

* prepare v0.6.2

* fix ci

* try some musl builds #356

* add musl build to artifact #356

* add musl build to deployment pipeline #356

* migrate clap v4, add man command #419

* add option to choose color manually #407

* update links and badges

* update matrix badge

* add github release version badge

* update badges links

* fix code bloc type

* fix tests

* fix cargo lock

* generate all man pages for all subcommands #419

* fix query and headers arg parsers

* fix invalid flags and options due to clap v4 migration

* fix tests

* remove -l|--log-level option

* refactor contributing guide

* update lib

* fix flags string printer

* make commands read, attachments, copy, move and delete accept multiple ids

* fix ids arg parser

* fix flags subcommands conflicts between ids and flags

* flip back copy and move arguments

* add issue template (#439)

* update lib, prepare for sync feature

* update himalaya lib, fix senders and config

* update lock file himalaya lib

* fix sync enabling issues

* fix wrong imap backend init in main file

* fix notmuch backend post sync feature

* configuration wizard (#432)

* make DeserializedConfig::path more robust

With this change, himalaya uses the crate `dirs` in order to follow XDG
specifications on Unix, Known Folder on Windows and Standard Directories
on MacOS. This gives us much smoother cross-platform support. It still
has the same fallbacks (`$HOME/.config/himalaya/config.toml` and
`$HOME/.himalayarc`.)

Additionally, this commit removes a bit of in-house code-bloat.

* add wizard entrypoint and basic structure

* wip

* feat: impl Serialize for all DeserializedConfigs

* feat: select default account and write to file

* feat: add SMTP part of wizard

* build: update lockfile

* refactor: separate out multiple files for wizard

* style: friendlier and prettier messages

* feat: add maildir part of wizard

* feat: add notmuch part of wizard

* chore: clippy lints and reorder prompts

* fix: contrived solution to serializing None values

* fix: allow empty Option field when deserializing

* style: address PR review comments

* fix: utilize notmuch lib in finding database path

* fix notmuch wizard

---------

Co-authored-by: Clément DOUIN <clement.douin@posteo.net>

* add account sync progress bar

* improve sync spinner

* make the sync dry run flag show patches without applying them

* update himalaya lib, increase imap session pool size

* add disable cache flag

* add nlnet logo in readme

* update himalaya lib deps, make use of sync reports

* prepare v0.7.0

* bump rustc v1.67.0 and clap v4.1.4

* bump himalaya lib v0.5.1, fix flake lock file

---------

Co-authored-by: janabhumi <dmitriy@ideascup.me>
Co-authored-by: Knut Magnus Aasrud <km@aasrud.com>
2023-02-08 16:03:45 +01:00
.github release v0.7.0 (#433) 2023-02-08 16:03:45 +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.7.0 (#433) 2023-02-08 16:03:45 +01:00
.gitignore update code for sendmail sender lib feature 2022-10-12 13:59:20 +02:00
Cargo.lock release v0.7.0 (#433) 2023-02-08 16:03:45 +01:00
Cargo.toml release v0.7.0 (#433) 2023-02-08 16:03:45 +01:00
CHANGELOG.md release v0.7.0 (#433) 2023-02-08 16:03:45 +01:00
CONTRIBUTING.md release v0.7.0 (#433) 2023-02-08 16:03:45 +01:00
default.nix refactor msg model (#173) 2021-09-11 00:35:22 +02:00
flake.lock release v0.7.0 (#433) 2023-02-08 16:03:45 +01:00
flake.nix update nix flake 2022-09-28 22:28:08 +02:00
install.sh fix install.sh bin name 2021-05-08 22:52:43 +02:00
LICENSE update lib v0.3.1, use MIT license 2022-10-10 18:14:56 +02:00
README.md release v0.7.0 (#433) 2023-02-08 16:03:45 +01:00
rust-toolchain.toml make Backend::get_mboxes return struct instead of trait (#340) 2022-05-29 12:36:10 +02:00
shell.nix refactor msg model (#173) 2021-09-11 00:35:22 +02:00

📫 Himalaya GitHub release Matrix

Command-line interface for email management based on the himalaya-lib.

image

Warning: the project is under active development, do not use in production before the v1.0.0.

Features

  • Folder listing
  • Email listing and searching
  • Email composition based on $EDITOR
  • Email manipulation (copy/move/delete)
  • Multi-accounting
  • Account listing
  • IMAP, Maildir and Notmuch support
  • IMAP IDLE mode for real-time notifications
  • PGP end-to-end encryption
  • Completions for various shells
  • JSON output

Note: see the wiki for all the features.

Installation

Packaging status
# Arch Linux (official)
$ pacman -S himalaya

# Arch Linux (from sources)
$ yay -S himalaya-git

# Homebrew
$ brew install himalaya

# Cargo
$ cargo install himalaya

# Nix
$ nix-env -i himalaya

Note: see the wiki for other installation methods.

Configuration

# ~/.config/himalaya/config.toml

display-name = "Test"
downloads-dir = "~/downloads"
signature = "Regards,"

[gmail]
default = true
email = "test@gmail.com"

backend = "imap"
imap-host = "imap.gmail.com"
imap-port = 993
imap-login = "test@gmail.com"
imap-passwd-cmd = "security find-internet-password -gs gmail -w"

sender = "smtp"
smtp-host = "smtp.gmail.com"
smtp-port = 465
smtp-login = "test@gmail.com"
smtp-passwd-cmd = "security find-internet-password -gs gmail -w"

[gmail.folder-aliases]
inbox = "INBOX"
sent = "[Gmail]/Sent"
drafts = "[Gmail]/Drafts"

[local]
email = "test@localhost"
signature-delim = "~~\n"
signature = "Regards,"

backend = "maildir"
maildir-root-dir = "~/emails"

sender = "sendmail"
sendmail-cmd = "msmtp --read-envelope-from --read-recipients"

Note: see the wiki for all the options.

Contributing

If you find a bug, please send an email at ~soywod/pimalaya@todo.sr.ht.

If you have a question, please send an email at ~soywod/pimalaya@lists.sr.ht.

If you want to propose a feature or fix a bug, please send a patch at ~soywod/pimalaya@lists.sr.ht using git send-email (see this guide on how to configure it).

If you want to subscribe to the mailing list, please send an email at ~soywod/pimalaya+subscribe@lists.sr.ht.

If you want to unsubscribe to the mailing list, please send an email at ~soywod/pimalaya+unsubscribe@lists.sr.ht.

If you want to discuss about the project, feel free to join the Matrix workspace #pimalaya or contact me directly @soywod.

Credits

nlnet

Special thanks to the nlnet foundation that helped Himalaya to receive financial support from the NGI Assure program of the European Commission in September, 2022.

Sponsoring

GitHub PayPal Ko-fi Buy Me a Coffee Liberapay