Commit Graph

511 Commits

Author SHA1 Message Date
Clément DOUIN 48cb0d3e7b docs: switch back license to MIT OR Apache-2.0
The AGPL license was just too restrictive, better to put effort in a Enterprise,
paid version.
2026-06-08 14:46:05 +02:00
Clément DOUIN c71c1281cf fix: fix tests + macos build 3rd attempt 2026-06-07 18:58:38 +02:00
Clément DOUIN 09216723c3 build: bump deps 2026-06-06 22:50:30 +02:00
Clément DOUIN 0a073e6dcd fix: auth failure due to invalid default port 2026-06-02 16:44:02 +02:00
Clément DOUIN 4b347fda2b refactor: improve sasl config 2026-06-02 00:34:12 +02:00
Clément DOUIN 164c745120 refactor(imap): make envelope and message get/read support * as id
Refs: #583
2026-06-01 23:18:19 +02:00
Clément DOUIN e377aede15 feat: make alpn customizable per protocol
Refs: #670
2026-06-01 20:47:41 +02:00
Clément DOUIN 7d81d73043 fix: forward smtp error is case of connection failure 2026-06-01 18:55:01 +02:00
Clément DOUIN 07078437a2 refactor: drop HIMALAYA_CONFIG support
Clap env vars are hard to customize across Pimalaya projects, and they can
always be replaced by arg or flag.
2026-06-01 18:54:57 +02:00
Clément DOUIN ec5a53233f feat: add message send --save and message save --send args 2026-06-01 16:53:40 +02:00
Clément DOUIN 662bd26eb1 refactor: remove composer and reader
Composers and readers did not work as expected. It is just not possible for
himalaya to spawn a command that spawns $EDITOR, piping and redirection cannot
satisfy all the needs. Either the $EDITOR does not spawn (hangs over), either
himalaya does not collect any output from edition. The simplest way is to use an
intermediate temp file, or use process substitution. For eg., using mml:

  mml compose >(himalaya message send)

You can also write into a file then feed himalaya with it.
2026-06-01 16:27:54 +02:00
Clément DOUIN 3a1a981b8c refactor: rename command to singular 2026-06-01 14:12:34 +02:00
Clément DOUIN 1ddc3e48d5 feat: add missing m2dir commands 2026-05-31 20:38:47 +02:00
Clément DOUIN a28f95f9db fix: raw message arg (imported from mml) 2026-05-31 20:06:36 +02:00
Clément DOUIN aff4fddfb4 feat(imap): added back auto id feature
Refs: #688
2026-05-31 19:46:48 +02:00
Clément DOUIN 1f6cf06166 chore: clean 2026-05-26 19:40:35 +02:00
Bowen Ho 8030ef5c50 chore: apply clippy --fix
* Fix clippy

* cargo fmt

Refs: #689
2026-05-24 15:08:23 +02:00
Clément DOUIN 68ff784c24 refactor: improve maildir, bring m2dir support 2026-05-24 01:37:37 +02:00
Bowen Ho c490bd5a27 refactor: split composer config into subparts compose, reply and forward
* feat: Add configs for `reply-with` and `forward-with` commands

Config extended from:

(Old)
```toml
[message.composer.mml]
command = "mml compose"
```

, where `compose-with`, `reply-with`, and `forward-with`
all share the same composer command, to:

(New)
```toml
[message.composer.mml]
default = true
compose-command = "mml compose"
reply-command = "mml reply"
forward-command = "mml forward"
```

* docs: ComposerConfig

* refactor(account): simplify composer resolution with `get_composer`

- Implement `Account::get_composer`, and `Account::get_reader`
  to fetch config by name or default.
- Remove the redundant `resolve_composer`, `default_composer`
  `resolve_reader`, and `default_reader` helpers.
- Simplify the configuration retrieval architecture.

* refactor: update composer and reader config to use std::process::Command

- Remove `_command` suffix from `compose`, `reply`,
  and `forward` configuration fields.
- Replace composer and reader config command type
  from `String` to `std::process::Command`.
- Remove `Clone` derives from `Config`, `Account`, and
  related structs due to `Command` type limitations.

Refs: #687
2026-05-23 17:42:03 +02:00
Clément DOUIN e1eb379231 refactor: make message add return added id
Refs: #627
2026-05-21 14:02:10 +02:00
Clément DOUIN 6ae09790aa chore: cargo fmt 2026-05-20 23:48:27 +02:00
Clément DOUIN c2228e504f build: bump io-email 2026-05-20 23:47:49 +02:00
Clément DOUIN 791a54ef15 style: put back color inside table 2026-05-20 20:02:41 +02:00
Clément DOUIN 9dd02da584 docs: switch to agpl license 2026-05-20 02:36:43 +02:00
Clément DOUIN 58d13804e5 re-introduce search query 2026-05-20 00:54:21 +02:00
Clément DOUIN 5500b02cfc clean part 3 2026-05-20 00:54:21 +02:00
Clément DOUIN cd27969e14 clean part 1 2026-05-20 00:54:16 +02:00
Clément DOUIN 8416a41f99 use std clients 2026-05-20 00:54:16 +02:00
Clément DOUIN c32047d4de rewrite lib without io-socket nor io-fs, and with io-email 2026-05-20 00:54:13 +02:00
Clément DOUIN 14edd94896 fix: apply #646 2026-05-20 00:54:12 +02:00
Clément DOUIN b295f159de refactor: unify command names 2026-05-20 00:54:06 +02:00
Clément DOUIN 0803320b61 tests: add smtp integration tests 2026-05-20 00:53:25 +02:00
Clément DOUIN 6cde5dfe38 refactor: clean serializers 2026-05-20 00:53:25 +02:00
Clément DOUIN 8b868f6e0e tests(imap): init fastmail and stalwart tests 2026-05-20 00:53:25 +02:00
Clément DOUIN 9d46dfd0a2 refactor(jmap): improve errors management 2026-05-20 00:53:25 +02:00
Clément DOUIN 2afbc89d3e tests: add fastmail and stalwart integration tests 2026-05-20 00:53:24 +02:00
Clément DOUIN 6a9877f0f5 refactor: improve jmap session management 2026-05-20 00:53:24 +02:00
Clément DOUIN 1f3e96e263 refactor: clean jmap api 2026-05-20 00:53:24 +02:00
Clément DOUIN c720e6e36b feat: init jmap support 2026-05-20 00:53:24 +02:00
Clément DOUIN 7a581b33b4 feat(imap): add back pagination for envelope listing 2026-05-20 00:53:24 +02:00
Clément DOUIN 2352cc71c7 feat: add maildir support for envelope and flag commands 2026-05-20 00:53:24 +02:00
Clément DOUIN dd43e0e123 feat: init maildir support with message command 2026-05-20 00:53:24 +02:00
Clément DOUIN 7c4dcfc08a fix: use sasl_default_mechanisms from toolbox 2026-05-20 00:53:24 +02:00
Clément DOUIN 17ec4b0fa1 refactor: replace --select by --no-select 2026-05-20 00:53:23 +02:00
Clément DOUIN b77a54e5dc refactor: use imap and smtp streams from toolbox 2026-05-20 00:53:23 +02:00
Clément DOUIN 1978039f70 fix: add missing manuals and completions commands 2026-05-20 00:53:23 +02:00
Clément DOUIN 0ad22c8630 clean implem part 1 2026-05-20 00:53:23 +02:00
Clément DOUIN eb6b721ba6 clean unused config, add id command 2026-05-20 00:53:23 +02:00
Clément DOUIN 44d2690d59 add account struct for each backend 2026-05-20 00:53:22 +02:00
Clément DOUIN fe0f5cec85 improve modules structure 2026-05-20 00:53:20 +02:00