Commit Graph

844 Commits (803d3414fd73743ff5bfc0fefe5e3d76d88e58cb)

Author SHA1 Message Date
Manos Pitsidianakis 803d3414fd melib/imap/managesieve: implement some rfc5804 commands
Try with managesieve REPL in src/managesieve.rs:

cargo run --bin managesieve-client ~/.config/meli/config.toml
"accountname"

rfc5804 <https://www.rfc-editor.org/rfc/rfc5804.html>
2 years ago
Manos Pitsidianakis 3697b7d960 melib/datetime: don't use LC_ category in place of LC_ masks in libc calls
LC_ masks are bit masks, whereas category values are not.

Concerns #159

[imap] all mail timestamps are zero/epoch #159
https://git.meli.delivery/meli/meli/issues/159
2 years ago
Manos Pitsidianakis 0ef4dde939 melib/jmap: wrap serde_json deserialize errors in human readable errors 2 years ago
Manos Pitsidianakis 55ed962425 melib/jmap: use server_url instead of server_hostname + server_port in config 2 years ago
Manos Pitsidianakis 16646976d7 compose: fix reply subject prefixes stripping original prefix
Unintelligent heuristic but should cover most cases?

Configurable subject response prefix #142
https://git.meli.delivery/meli/meli/issues/142

Closes #142
2 years ago
Manos Pitsidianakis 7e09b1807f melib/collection: replace _Ref deref unwraps with expect() 2 years ago
Manos Pitsidianakis 129573e0fd melib/maildir: rename root_path to root_mailbox 2 years ago
Manos Pitsidianakis 0c08cb737c melib/jmap: mark mailboxes as subscribed on personal accounts
The spec https://jmap.io/spec-mail.html#mailboxes says a mailbox property `isSubscribed` should be considered true if the account is marked as `isPersonal`.

Closes #157

JMAP incompatible with Stalwart server #157 https://git.meli.delivery/meli/meli/issues/157
2 years ago
Manos Pitsidianakis 117d7fbe04 melib/jmap/rfc8620.rs: make private fields public 2 years ago
Manos Pitsidianakis 347be54305 melib/error: add NetworkErrorKind enum 2 years ago
Manos Pitsidianakis c3fdafde3b Documentation touchups 2 years ago
Manos Pitsidianakis c6bdda03cf melib/backends.rs: fix notmuch error shown on any missing backend 2 years ago
Manos Pitsidianakis b87d54ea3f melib/backends.rs: impl Into<BTreeSet<EnvelopeHash>> for EnvelopeHashBatch 2 years ago
Manos Pitsidianakis b138d9bc61 melib: fix some clippy lints 2 years ago
Manos Pitsidianakis 388d4e35d6 listing/offline.rs: add in-progress messages while connecting in IMAP 2 years ago
Manos Pitsidianakis 9cbbf71e0f melib/email/attachments: Add DecodeOptions struct for decoding 2 years ago
Manos Pitsidianakis 3688369278 melib/smtp: add smtp test 2 years ago
Manos Pitsidianakis 3c0f5d8274 melib/smtp: add BINARYMIME support to smtp client
Concerns #49

IMAP: Lemonade profile tracking issue
2 years ago
Manos Pitsidianakis a72c96a26a melib/smtp: add 8BITMIME support to smtp client
Concerns #49

IMAP: Lemonade profile tracking issue
2 years ago
Manos Pitsidianakis 8c7b001aa5 listing/conversations.rs: add `thread_subject_pack` command to pack different inner thread subjects in entry title 2 years ago
Manos Pitsidianakis 2de69d17f1 melib/compose: fix erroneous placement of newlnes for wrap_header_preamble suffix 2 years ago
Manos Pitsidianakis cbe593cf31 mail/compose: add configurable header preample suffix and prefix for editing
This commit adds a new configuration value for the composing section of
settings. Quoting the documentation:

 wrap_header_preamble: Option<(String, String)>
 optional

 Wrap header preample when editing a draft in an editor. This allows you
 to write non-plain text email without the preamble creating syntax
 errors. They are stripped when you return from the editor. The values
 should be a two element array of strings, a prefix and suffix. This can
 be useful when for example you're writing Markdown; you can set the
 value to ["<!--",\ "-->"] which wraps the headers in an HTML comment.
2 years ago
Manos Pitsidianakis a484b397c6 melib/notmuch: show informative error messages if libloading fails
Add instructions on how to solve this, and also a config setting
`library_file_path` to set the path manually if necessary.
2 years ago
Manos Pitsidianakis eb5949dc9b melib/error.rs: switch summary<->details identifiers
They are more intuitive like this.
2 years ago
Manos Pitsidianakis da9c80ccfd melib: Enhance SubjectPrefix with strip_prefixes_from_list() method
And make it public.
2 years ago
Manos Pitsidianakis 480000ebbb melib/notmuch: show error if account directory does not contain ".notmuch" subdirectory
Bug reported by user on mailing list.
2 years ago
Manos Pitsidianakis 29042aba59 melib/datetime: add mbox date format parse 2 years ago
Manos Pitsidianakis 7650805c60 Bring stripped binary size down to 7MiB 2 years ago
Guillaume Ranquet 9205f3b8af conf.rs: handle a per account mail order parameter
The new order parameter adds the possibility to specify a
sort order on a per account basis.

Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
2 years ago
Manos Pitsidianakis 7fca5f01ef melib/jmap: fix jmap build with isahc 1.7.2 2 years ago
Manos Pitsidianakis daa900ec9a Fix embed terminal in macos
Pseudoterminal wasn't created correctly on macos
2 years ago
Manos Pitsidianakis ce269c64e1 conf: don't fail on `server_password_command`
Don't fail when parsing an IMAP config when it has
`server_password_command` set.

Closes #139

Meli stopped recognizing server_password_command configuration #139
2 years ago
Manos Pitsidianakis d6355a3043 melib/email/parser: impl Debug for ParsingError 2 years ago
Manos Pitsidianakis 6a843d4983 melib/maildir: export list_mail_in_maildir_fs() function 2 years ago
Manos Pitsidianakis 9558b2ae92 melib/email: parse Cp1253 as windows1253 encoding 2 years ago
Manos Pitsidianakis 721891c295 Update nom dependency 2 years ago
Manos Pitsidianakis 2c23ca34cd Update most Cargo dependencies 2 years ago
Manos Pitsidianakis 81184b182c
Add extra_identities configuration flag
Closes #119

Multi identies per account #119 https://git.meli.delivery/meli/meli/issues/119
2 years ago
Manos Pitsidianakis aa3524dd30
melib/backends/notmuch: fix tag not being removed in set_flags()
May be related to #132

Cannot remove tags in the notmuch backend #132

> Running tag remove TAG on the notmuch backend does nothing. At a
> glance, this seems to be because NotmuchMailbox::set_flags never bothers
> to remove tags that are already present but not in the list of new tags.
> I could try fixing it, but I have no idea how the contribution process
> works here (my guess is the mailing list, but, well, #131).

https://git.meli.delivery/meli/meli/issues/132
2 years ago
Manos Pitsidianakis f5dc25ae0d
conf.rs: check that all conf flags are recognized in validation
This commit adds logic in configuration file validation that checks that
each account "extra" field is empty after getting it back from the
backend validation. This is to ensure the user doesn't set options that
are invalidly stated in the documentation or by accident.

Closes #135

Configuration error (xxx): the following flags are set but are not recognized: ["index_style"] https://git.meli.delivery/meli/meli/issues/135
2 years ago
Manos Pitsidianakis e9aaa7b067
melib/datetime: use *const c_char instead of *const i8 for portability
Using *const i8 broke compatibility with arm64.

Fixes #127
2 years ago
Manos Pitsidianakis d4b690d5d3
melib/imap: send password as byte literal on LOGIN
Concerns #125

Escape IMAP passwords properly https://git.meli.delivery/meli/meli/issues/125
2 years ago
Manos Pitsidianakis ce2068d36b
melib/jmap: fix background watch using JSON paths incorrectly 2 years ago
Manos Pitsidianakis 0d8bedd2d5
melib/jmap: make is_online() await for connection
Closes	#126 https://git.meli.delivery/meli/meli/issues/126
2 years ago
Manos Pitsidianakis 81d1265601
melib/imap: escape IMAP passwords properly
Closes #125
3 years ago
Manos Pitsidianakis d8e9a00563
melib/imap: add quoted REFERENCES field in parsing of responses 3 years ago
Manos Pitsidianakis 36e29cb6fd
Add configurable mailbox sort order
Closes #25

```
     sort_order unsigned integer           (optional) Override sort order on the sidebar for this mailbox.  Example:

                                           [accounts."imap.example.com".mailboxes]
                                             "INBOX" = { index_style = "plain" }
                                             "INBOX/Sent" = { sort_order = 0 }
                                             "INBOX/Drafts" = { sort_order = 1 }
                                             "INBOX/Lists" = { sort_order = 2 }
```
3 years ago
Manos Pitsidianakis 5f003a31be
melib/addressbook/vcard: Parse vCards with just LF instead of CRLF line endings
According to the vcard RFC
https://datatracker.ietf.org/doc/html/rfc6350#section-3.2 all lines must
end with CRLF (\r\n or 0x0d 0x0a)

Some VCard sources use only newline, which, while spec violating is easy
to recover from. So parse them as if they are correct.

Closes #121
3 years ago
Manos Pitsidianakis 2580522931
melib/addressbook: log vcard parsing failures 3 years ago
Manos Pitsidianakis 15ca25af73
Bump version to 0.7.2 3 years ago