Commit Graph

1970 Commits (fix/269-invalid-ctext-loop)
 

Author SHA1 Message Date
Manos Pitsidianakis c5ecaceae1
melib/search: fix some search criteria in Query type 1 year ago
Manos Pitsidianakis 6bf1756de8 melib/search: implement more search criteria in Query type 1 year ago
Manos Pitsidianakis 23d95973d4 melib/backends/imap: add search.rs module
Add trait to convert melib::search::Query type to an IMAP appropriate
query string (search criteria).
1 year ago
Manos Pitsidianakis 6388bea9a0 melib/email/headers: fix &[u8] index in HeaderMap 1 year ago
Manos Pitsidianakis f537c24909 utilities/widgets.rs: move text field to its own module 1 year ago
Guillaume Ranquet daf42fd456 config_macros.rs: fix build error with quote 1.0.28
With quote 1.0.28 the TokenTree enum is declared as a private enum
thus causing this error at build time:

error[E0603]: enum `TokenTree` is private
   --> config_macros.rs:114:54
    |
114 | ...                   if let quote::__private::TokenTree::Group(g) =
    |                                                ^^^^^^^^^ private enum

Use enum definition from proc_macro2 instead.

Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
1 year ago
Manos Pitsidianakis 58889bcadd
pager: Add show_extra_headers option
Show custom set headers on pager, if existent.

Quoting meli.conf(5):

> show_extra_headers [String]           (optional) Extra headers to
>                                      display, if present, in the
>                                      default header preamble of
>                                      the pager.  This setting is
>                                      useful especially when used
>                                      per-folder or per-account.
>                                      For example, if you use
>                                      ‘rss2email’ (See r2e(1)) the
>                                      e-mail you will receive will
>                                      have the ‘X-RSS-Feed’ header
>                                      by default.  You can show
>                                      them only in the folder
>                                      where you keep your feed
>                                      items:
>
>                                      [accounts."personal".mailboxes]
>                                      INBOX = {}
>                                      "INBOX/Sent" = { sort_order=0 }
>                                      "INBOX/Feeds" = { pager.show_extra_headers = ["X-RSS-Feed"] }
>                                      (empty)
1 year ago
Manos Pitsidianakis d332e4578d
melib/headers: add proper Display impl for HeaderName 1 year ago
Manos Pitsidianakis 954329d848 Set file extensions to temp files, use `open` in macos
If html_filter fails, meli unwraps it. Also, if it can't find an xdg default app it also fails.

So use xdg-open and open as failsaifes.

But that requires `open` to know it's an html file, so implemented setting temp file extensions as well.
1 year ago
Manos Pitsidianakis aebff3d3d9 melib: implement mailto RFC properly
This allows mailto links with `In-Reply-To` parameters to work properly.

PS Mailto links can be used with the `mailto MAILTO_URI` command
1 year ago
Manos Pitsidianakis 235fceaf21 melib: Add standard heeder constants in email::headers
Like `http` crate does
1 year ago
Damian Poddebniak 1eea8bab77 tests: Fix `test_imap_fetch_response`. 1 year ago
Damian Poddebniak 30866f752b chore: Bypass rustfmt bug. 1 year ago
Manos Pitsidianakis 1f8ac2287b
docs/external-tools.md: fix ftplugin location and add example mail.vim file 1 year ago
Manos Pitsidianakis c9d26bb415
mail/compose: add configurable custom hooks with shell commands
Quoting the docs at meli.conf(5):

```text
 custom_compose_hooks [{ name = String, command = String }]

 (optional) Custom compose-hooks that run shell scripts.
 compose-hooks run before submitting an e-mail.
 They perform draft validation and/or transformations.
 If a custom hook exits with an error status or prints output to
 stdout and stderr, it will show up in the UI as a notification.

 Example:

 [composing]
 editor_cmd = '~/.local/bin/vim +/^$'
 embed = true
 custom_compose_hooks = [ { name ="spellcheck", command="aspell --mode email --dont-suggest --ignore-case list" }]
 ```
1 year ago
Manos Pitsidianakis cc27639fca
melib/email/compose: use Envelope attachments when editing and don't add already existing headers 1 year ago
Damian Poddebniak f63f6445ad chore: Improve error message when `m4` executable is missing. 1 year ago
Damian Poddebniak 682ea5547e chore: Add `.idea` (CLion) to `.gitignore`. 1 year ago
Manos Pitsidianakis 24103f3310
docs: add external-tools.md document 1 year ago
Manos Pitsidianakis 91557c2c43
mail/listing.rs: prevent list blank when refreshing account
Mail list would go blank if the currently focused account received a
Status update event.
1 year ago
Manos Pitsidianakis 428f752b20
Remove obsolete crate::components::mail::get_display_name() 1 year ago
Manos Pitsidianakis 77020e0c19
Update CHANGELOG.md 1 year ago
Manos Pitsidianakis 8c671935f9
Add compose (pre-submission) hooks for validation/linting
compose-hooks run before submitting an e-mail.
They perform draft validation and/or transformations.
If a hook encounters an error or warning, it will show up as a notification.
The currently available hooks are:
- past-date-warn
  Warn if Date header value is far in the past or future.
- important-header-warn
  Warn if important headers (From, Date, To, Cc, Bcc) are missing or invalid.
- missing-attachment-warn
  Warn if Subject, draft body mention attachments but they are missing.
- empty-draft-warn
  Warn if draft has no subject and no body.

They can be disabled with [composing.disabled_compose_hooks] setting.
1 year ago
Manos Pitsidianakis 1f1ea30769
components/mail/view: on draw() set dirty on return 1 year ago
Manos Pitsidianakis 85d4316a6a
Replace old logging module with the `log` create 1 year ago
Manos Pitsidianakis 30cc5d3d02
docs: add edit-config in manpages 1 year ago
Manos Pitsidianakis b1a7188771
Clippy fixes 1 year ago
Manos Pitsidianakis 3a02b6fb80
README.md: mention how to override w3m with html_filter 1 year ago
3nt3 34bb532e8d
Mention w3m dependency
Fixes #181

Signed-off-by: 3nt3 <gott@3nt3.de>
1 year ago
Manos Pitsidianakis 47e6d5d935
meli: add edit-config CLI subcommand that opens config files on EDITOR 1 year ago
Manos Pitsidianakis 39d9c2af3b
melib/smtp: fix test smtp server logic 1 year ago
Manos Pitsidianakis d679a74450
melib/jmap: Implement Bearer token authentication
Fastmail now uses an API token in a http header for authentication.

This can be used either as a server_password or provided by a
server_password_command like oauth2.
1 year ago
Manos Pitsidianakis d9c07def0f
Add command to select charset encoding for email
Open dialog to select charset with `d`.
1 year ago
Manos Pitsidianakis 939dc15e28
Fix melib tests 1 year ago
Manos Pitsidianakis 3adf72aed0
Add support for utf-7 encoding
Closes #175
1 year ago
Johannes Schilling 2447a2cbfe melib/jmap: avoid relying on hardcoded hash values
The hash values seem to have changed in the meantime, or aren't the same
on all environments.
1 year ago
Manos Pitsidianakis d7ec97f03b Small rustfmt change 1 year ago
Johannes Schilling fbc1007ff4 jmap: deserialize `null` to empty vec for messageId
The spec says MessageId can be `null`, handle that case and deserialize
it to an empty Vec.
1 year ago
cos 256a3e252e Update minimum supported rust version
Code requires label_break_value feature, which was [stabilized][0] in
release 1.65.0 of the toolchain.

[0]: https://github.com/rust-lang/rust/pull/99332
1 year ago
Manos Pitsidianakis 3a10953f05 debian/: update fix-prefix-for-debian.patch 1 year ago
Manos Pitsidianakis 11140b4a76 Fix test output
test_compose_reply_subject_prefix requires access to / path, and fails
when building with deb-dist
1 year ago
cos 671ce9f694 debian/: add missing build dependencies
quilt has unconditionally been used in debian/rules since the initial
addition of debian packaging support in commit bb80de.

sqlite3 has been a default feature since at least commit 6ceed3,
possibly longer through rusqlite.
1 year ago
Johannes Schilling 12cb717bda melib: add server_password_command to jmap
Move the handling of either `server_password` or
`server_password_command` from the imap backend to the common
`AccountSettings` struct and add it for jmap as well.
1 year ago
Manos Pitsidianakis f9ac9b607a Temporarily disable libgpgme functions because of a bug
`Possible incorrect libgpgme API usage causes a SIGABRT when verifying
signatures #176`

<https://git.meli.delivery/meli/meli/issues/176>
1 year ago
Manos Pitsidianakis 660bacb926 Add `mailto` command to open composer with initial values from mailto template 1 year ago
Manos Pitsidianakis de2f46fe61 rustfmt changes 1 year ago
Manos Pitsidianakis 5443b7e8f3 melib/sieve: remove literal_map() parse combinator 1 year ago
Manos Pitsidianakis 3c847ad26a melib/sieve.rs: add beginning of sieve parser
Concerns #153

Support filtering rules to move mails to folders #153 <https://git.meli.delivery/meli/meli/issues/153>
1 year ago
Manos Pitsidianakis 2878bbb8c8 melib/addressbook: add parser for mutt alias file 1 year ago
Manos Pitsidianakis 40c6647db8 Fix multipart/related with main text/html part not displayed correctly 2 years ago