mirror of
https://github.com/pimalaya/himalaya.git
synced 2026-06-17 13:17:55 +08:00
694173b534
* 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>
171 lines
5.5 KiB
Markdown
171 lines
5.5 KiB
Markdown
# 📫 Himalaya [](https://github.com/soywod/himalaya/releases/latest) [](https://matrix.to/#/#himalaya.email.client:matrix.org)
|
|
|
|
Command-line interface for email management based on the
|
|
[himalaya-lib](https://git.sr.ht/~soywod/himalaya-lib).
|
|
|
|

|
|
|
|
*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](https://github.com/soywod/himalaya/wiki) for all
|
|
the features.*
|
|
|
|
## Installation
|
|
|
|
<table align="center">
|
|
<tr>
|
|
<td width="50%">
|
|
<a href="https://repology.org/project/himalaya/versions">
|
|
<img src="https://repology.org/badge/vertical-allrepos/himalaya.svg" alt="Packaging status" />
|
|
</a>
|
|
</td>
|
|
<td width="50%">
|
|
|
|
```shell
|
|
# 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](https://github.com/soywod/himalaya/wiki/Installation) for other
|
|
installation methods.*
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
## Configuration
|
|
|
|
```toml
|
|
# ~/.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](https://github.com/soywod/himalaya/wiki/Configuration) for all
|
|
the options.*
|
|
|
|
## Contributing
|
|
|
|
If you find a **bug**, please send an email at
|
|
[~soywod/pimalaya@todo.sr.ht](mailto:~soywod/pimalaya@todo.sr.ht).
|
|
|
|
If you have a **question**, please send an email at
|
|
[~soywod/pimalaya@lists.sr.ht](mailto:~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](mailto:~soywod/pimalaya@lists.sr.ht)
|
|
using [git send-email](https://git-scm.com/docs/git-send-email) (see
|
|
[this guide](https://git-send-email.io/) 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](mailto:~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](mailto:~soywod/pimalaya+unsubscribe@lists.sr.ht).
|
|
|
|
If you want to **discuss** about the project, feel free to join the
|
|
[Matrix](https://matrix.org/) workspace
|
|
[#pimalaya](https://matrix.to/#/#pimalaya:matrix.org) or contact me
|
|
directly [@soywod](https://matrix.to/#/@soywod:matrix.org).
|
|
|
|
## Credits
|
|
|
|
[](https://nlnet.nl/project/Himalaya/index.html)
|
|
|
|
Special thanks to the
|
|
[nlnet](https://nlnet.nl/project/Himalaya/index.html) foundation that
|
|
helped Himalaya to receive financial support from the [NGI
|
|
Assure](https://www.ngi.eu/ngi-projects/ngi-assure/) program of the
|
|
European Commission in September, 2022.
|
|
|
|
* [himalaya-lib](https://git.sr.ht/~soywod/himalaya-lib)
|
|
* [IMAP RFC3501](https://tools.ietf.org/html/rfc3501)
|
|
* [Iris](https://github.com/soywod/iris.vim), the himalaya predecessor
|
|
* [isync](https://isync.sourceforge.io/), an email synchronizer for
|
|
offline usage
|
|
* [NeoMutt](https://neomutt.org/), an email terminal user interface
|
|
* [Alpine](http://alpine.x10host.com/alpine/alpine-info/), an other
|
|
email terminal user interface
|
|
* [mutt-wizard](https://github.com/LukeSmithxyz/mutt-wizard), a tool
|
|
over NeoMutt and isync
|
|
* [rust-imap](https://github.com/jonhoo/rust-imap), a Rust IMAP
|
|
library
|
|
* [lettre](https://github.com/lettre/lettre), a Rust mailer library
|
|
* [mailparse](https://github.com/staktrace/mailparse), a Rust MIME
|
|
email parser.
|
|
|
|
## Sponsoring
|
|
|
|
[](https://github.com/sponsors/soywod)
|
|
[](https://www.paypal.com/paypalme/soywod)
|
|
[](https://ko-fi.com/soywod)
|
|
[](https://www.buymeacoffee.com/soywod)
|
|
[](https://liberapay.com/soywod)
|