Commit Graph

2566 Commits (c3cac77deefffc7781ed569d113a78df53206da6)
 

Author SHA1 Message Date
Manos Pitsidianakis c3cac77dee
Update imap-codec dependency to 2.0.0-alpha.4
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 27486f2908
Accept newer versions of base64 dependency
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 6cfe4da0c1
Enable rusqlite feature "modern_sqlite" always
Crate fails to build when dynamically linked.
The feature is implicitly enabled when statically linked,
as part of feature bundled-full.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 77e7c3df60
Add support for signatures
Add config values to `composing` config section to enable signatures:

   signature_file Path                   (optional) Plain text file with signature that will pre-populate an email draft.  Signatures must be explicitly enabled to be used, otherwise this setting will be ignored.  (None)

   use_signature bool                    Pre-populate email drafts with signature, if any.  meli will lookup the signature value in this order:
                                         1.   The signature_file setting.
                                         2.   ${XDG_CONFIG_DIR}/meli/<account>/signature
                                         3.   ${XDG_CONFIG_DIR}/meli/signature
                                         4.   ${XDG_CONFIG_DIR}/signature
                                         5.   ${HOME}/.signature
                                         6.   No signature otherwise.
                                         (false)

   signature_delimiter String            (optional) Signature delimiter, that is, text that will be prefixed to your signature to separate it from the email body.  (‘\n\n-- \n’)

Closes #498

Resolves: https://git.meli-email.org/meli/meli/issues/498
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis b930cb4940
maildir: do not use rename_regex when only updating flags
Concerns #463

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 0c590bbc0c
contact-editor: remove empty space
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis b8e841bbcd
jmap: implement mailbox deletion
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis ca7eb79284
jmap: Implement deleting email
Finally!

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 39592ad02c
jmap: implement changing mailbox subscription
Finally!

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 6d0d968040
jmap: move EmailObject state to Store
State is per account, not per mailbox, so move it to the per-account
store.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 9865211076
CI: prepend printf commands with @
In Makefiles, prepending a command with @ will not print the command
being executed, only its result. Do this for `printf`s.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 4f927bbe64
nntp: properly return all nntp mailboxes
Previously only mailboxes specified in the configuration were fetched.
Now, all groups returned by `LIST ACTIVE` are examined with the
`is_subscribed` function.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 5915f125c3
backends: use IsSubscribedFn in method signatures
Despite having the IsSubscribedFn struct wrapper for closures that check
if a mailbox is subscribed or not, backend methods were still using
  Box<dyn Fn(... types. Switch to using the wrapper newtype everywhere.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis cd2e4bf3a4
melib/utils: vendor urn crate
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis a6c7621ce3
jscontact: add {created,updated} fields
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 7dee32ae88
contacts: refactor Card to its own module
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 32f7e50fd4
Add version migration support
Add infrastructure for custom logic migration support between versions,
allowing breaking changes in for example configuration to be handled by
the application instead of the user.

The current version will be stored in ${XDG_DATA_HOME}/meli/.version

If at launch the versions do not match, the application will examine
whether there are any migrations in the range
previous_version..=current_version, and if they are applicable to the
user's case, it will ask the user to perform them interactively.

Support for reverting migrations is also added.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 49dcbc5e58
terminal: Extend Ask default actions, prompts
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 2069b4da09
errors: impl From<xdg::BaseDirectoriesError>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 8af003abd0
Rename addressbook stuff to "contacts"
Wasn't a nice name to begin with.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 593ed22ba1
pgp: perform gpgme's sign+encrypt manually
gpgme's sign and encrypt API doesn't seem to work properly; it only
encrypts for some reason. Do it manually which according to RFC 3156 -
MIME Security with OpenPGP is to sign first then encrypt the whole
thing.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis e032acfab7
view: pass filtered body to Composer as reply text
When replying to an e-mail, pass the filtered e-mail text to the
composer. This way, processed text like decrypted PGP e-mail is shown in
the reply context of a reply as the user expects.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis e0cfe8e4d7
Fix compilation for 32-bit architectures
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 2001b4dd06
Make `subscribed_mailboxes` conf val optional
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 1b201bf611
Remove GlobMatch trait, replace usage with Fnmatch
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis be3b3ef89b
melib/utils: add fnmatch(3) interface
Meant for use with mailbox path globbing.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 7f0157a966
compose: make dialogs bigger in height
Otherwise they might be hidden in small screens.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 7e800a8f3f
CI: move manifest_lints.yaml actions to Makefile.manifest-lints
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 598a70f9df
CI: move lints.yaml actions to Makefile.lint
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 1b3f2732b2
CI: Move build.yaml actions to Makefile.build
So that they can easily be performed locally with

make -f .gitea/Makefile.build

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis e6fa7093bf
view/envelope: trim headers values to 3 lines maximum
Prevent large header values (e.g. big list of recipients in To/Cc) take
big part of the view. Allow the full value to be visible when the
`expand_headers` option is toggled on.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 0b6988b7cf
gpgme: add always trust flag to encrypt op
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 23395491db
compose/pgp: add encrypt_for_self flag
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis c82341f3af
File: try trimming filename if ENAMETOOLONG
Commit 8f0e1d6640 added human-readable
identifiers in temp draft files but neglected to handle cases where
those identifiers were too darn long.

Fixes: 8f0e1d664 ("Add human-readable identifiers in temp draft files")
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis b1f24cbe95
view/filters: forward events on child filters
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis a69122f8b0
pgp: use default sign/encrypt keys when no keys are selected
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 7cfcbb7ab1
Add patch_retrieve module
Allow patches to be retrieved from sources like lore.kernel.org or other
public-inbox instances.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 128b959f36
nntp: prepend Newsgroups header if missing on NntpType::submit()
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis b27bac7f85
nntp: use DEFLATE when available by default
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 6eeb4571b7
nntp: make all fields public
The backend structs are public, fields should be public too.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 9a9cd03d9d
nntp: add NntpType::article_message_id() method
Add a method to retrieve an article by message id.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 592ce15903
mbox: use Uuid::nil() as default envelope from
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis fc3308e428
melib: Add Mail::as_mbox() method
While at it, cleanup Debug impl to prevent printing huge byte arrays.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis b33433e457
Don't create backends as Box<dyn MailBackend>, but as Box<Self>
It's unnecessary and makes it difficult for an API consumer to turn a
backend back to its original type.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 5f120309f9
nntp: add select_group_by_name() method
Add NntpConnection::select_group_by_name() method.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 6bc0caf4e0
melib: remove redundant get_path_hash macro
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis d4636bcc70
nntp: interpret IMPLEMENTATION cap as metadata
When returning MailBackendCapabilities for an Nntp backend, interpret
the IMPLEMENTATION capability as server metadata.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis aaea3a5ab4
nntp: add timeout conf flag
To match IMAP and JMAP, add a configuration flag `timeout` to use for
server connections.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis b048c95a86
BUILD.md: add instructions for Android build
With termux's unofficial Rust toolchain package.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis f78884ce02
melib/nntp: fix an ancient FIXME
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago