Manos Pitsidianakis
cc27639fca
melib/email/compose: use Envelope attachments when editing and don't add already existing headers
2023-05-19 09:21:11 +03:00
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.
2023-05-16 17:31:56 +03:00
Manos Pitsidianakis
b1a7188771
Clippy fixes
2023-04-30 20:47:53 +03:00
Manos Pitsidianakis
40c6647db8
Fix multipart/related with main text/html part not displayed correctly
2022-12-09 14:06:20 +02:00
Manos Pitsidianakis
5634f95553
Rename MeliError struct to Error
2022-12-08 22:20:05 +02:00
Manos Pitsidianakis
7382e30160
Convert EnvelopeHash from typedef to wrapper struct
2022-12-08 20:43:52 +02:00
Manos Pitsidianakis
b138d9bc61
melib: fix some clippy lints
2022-09-19 15:18:25 +03:00
Manos Pitsidianakis
9cbbf71e0f
melib/email/attachments: Add DecodeOptions struct for decoding
2022-09-11 01:22:06 +03:00
Manos Pitsidianakis
2de69d17f1
melib/compose: fix erroneous placement of newlnes for wrap_header_preamble suffix
2022-09-03 17:47:58 +03:00
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.
2022-09-02 16:09:45 +03:00
Manos Pitsidianakis
733de5a5fb
Fix some clippy suggestions
2021-09-12 14:33:00 +03:00
Manos Pitsidianakis
f097593bed
melib/datetime: fix date format string
2021-08-12 10:38:05 +03:00
Manos Pitsidianakis
3dba6fdf60
melib/datetime: add posix locale arg in timestamp_to_string()
2021-01-08 15:01:37 +02:00
Manos Pitsidianakis
a7c0bca8ce
Fix test errors and warnings
2020-11-21 02:09:18 +02:00
Manos Pitsidianakis
2544f54107
melib/compose: prevent bare newlines in finalised drafts
2020-11-10 17:26:06 +02:00
Manos Pitsidianakis
afe7eed9ef
melib/compose: don't base64 encode unless it's not ascii
2020-10-11 16:53:04 +03:00
Manos Pitsidianakis
afee1e2be5
melib/compose: fix wrong Content-Type on PGP signatures and message/rfc822
2020-10-11 16:53:04 +03:00
Manos Pitsidianakis
e407b1e224
melib: add README.md and email module doco
2020-09-24 16:54:06 +03:00
Manos Pitsidianakis
83bee279e6
melib/email/compose: set attachment status
...
Set Content-Disposition: attachment to, well, attachments.
2020-09-16 19:57:06 +03:00
Manos Pitsidianakis
c6c0da7fcb
melib: cleanup commit
...
Cleanup melib module exports, add some document tests, change some
documentation.
2020-09-10 21:19:38 +03:00
Manos Pitsidianakis
14663e46b9
Remove some old TODO comments
2020-08-26 00:54:07 +03:00
Manos Pitsidianakis
8d50e83a33
melib/email: add case-insensitive Header struct
...
- HeaderName is either 32 or less inlined bytes or heap-allocated vec for more than that.
- Equality and hashing is case-insensitive
- A HeaderMap is a hashmap from HeaderName to Strings that can be
indexed with &str, case insensitive. Insertion order is also preserved
2020-08-26 00:54:06 +03:00
Manos Pitsidianakis
9928ee78e7
Add Reply{ToAuthor,ToAll} actions
...
- previous Reply action now lets you select recipients by default
- ReplyToAuthor selects the Envelope author as recipient
- ReplyToAll selects all addresses
2020-08-26 00:54:05 +03:00
Manos Pitsidianakis
9afbdd4887
Add insert_user_agent option in composing
...
Add option for automatically inserting a 'User-Agent' header in new
drafts.
2020-08-26 00:54:05 +03:00
Manos Pitsidianakis
a7e177586a
Fix clippy lints
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
b3876113aa
BackendOp: return future in as_bytes()
2020-07-06 15:26:39 +03:00
Manos Pitsidianakis
6ec249dd7f
melib: update nom dependency from 3.2.0 to 5.1.1
...
That was hecking exhausting
2020-06-06 23:19:07 +03:00
Manos Pitsidianakis
eb701695f7
Remove fnv crate
2020-05-10 21:18:56 +03:00
Manos Pitsidianakis
5842a63e37
melib: ignore Draft body if empty for multipart mail
2020-04-04 19:17:16 +03:00
Manos Pitsidianakis
6a096dd405
Add missing copyright preambles
2020-01-31 03:54:58 +02:00
Manos Pitsidianakis
c0ac643f05
melib: add datetime module
...
Datetime module adds POSIX time functions interface
2020-01-06 16:10:36 +02:00
Manos Pitsidianakis
81c70b0136
melib: small test cosmetic fixes
2019-12-11 16:07:08 +02:00
Manos Pitsidianakis
d048d8566d
ui: add format=flowed if text/plain att is the only one
2019-12-06 16:37:44 +02:00
Manos Pitsidianakis
3dfb2f4f2c
melib: fix out-of-bounds parser bug
2019-11-28 18:52:12 +02:00
Manos Pitsidianakis
ce646abc7a
ui: add send confirmation dialog in compose tab
...
Confirm before sending mail
2019-11-19 23:28:08 +02:00
Manos Pitsidianakis
953c3aa9d0
melib: Add parameters field in ContentType::Text
...
Intending to add the option to set the parameter format=flowed in the
next commits
2019-11-17 13:24:19 +02:00
Manos Pitsidianakis
04e1137b36
melib: add "On ${date} ${author} wrote" heading in replies
2019-11-16 19:59:47 +02:00
Manos Pitsidianakis
1a02491f04
ui/compose: add modification detection
...
Detect if modifications were done to the draft in the compose tab so
that we can ask for confirmation if user wants to quit an unsaved draft.
2019-10-20 11:35:41 +03:00
Manos Pitsidianakis
47d60f480a
Add path shell expansion to logging and attachments
2019-09-28 12:19:22 +03:00
Manos Pitsidianakis
e35a93336a
Add GPG signing and sig verifying
2019-09-28 12:19:22 +03:00
Manos Pitsidianakis
68c40a2920
melib: return Result with error when an IO operation fails
...
Don't unwrap anything because this might be temporary, for example a
short IMAP disconnection.
2019-09-27 13:40:02 +03:00
Manos Pitsidianakis
9305e543cf
melib: add a `body` field to Attachment
...
Attachment needs to know the range of bytes where the body part of the
attachment is located. The Attachment.raw field contains the entire
attachment, headers and body. The new Attachment.body fields contains a
`StrBuilder` which contains the offset and length of the body part inside
`raw`.
2019-09-26 13:10:06 +03:00
Manos Pitsidianakis
ecb3fd7f3d
Add dyn keyword to Trait objects
...
And fix some unused var warnings as well
2019-09-15 13:21:14 +03:00
Manos Pitsidianakis
2492bc91b2
melib: add attachment_from_file()
2019-08-02 01:00:52 +03:00
Manos Pitsidianakis
c87ed5012d
melib: add attachment support in email/compose.rs
2019-08-02 00:24:35 +03:00
Manos Pitsidianakis
572944e917
melib: add version from Cargo manifest to User-Agent field
2019-07-30 19:23:55 +03:00
Manos Pitsidianakis
f33594fba8
melib: reply to In-Reply-To address if available
2019-06-25 10:37:19 +03:00
Manos Pitsidianakis
ba1d0c42e0
melib: add struct and parser for mailto: links
2019-06-18 21:59:50 +03:00
Manos Pitsidianakis
c6674a294d
melib: unwrap mailbox module
2019-06-10 19:40:50 +03:00