Commit Graph

89 Commits (6121f77853b1b9d75acc65b7d4d293326dec271f)

Author SHA1 Message Date
Manos Pitsidianakis 4b27ae2b91
melib: Add experimental SMTP client 4 years ago
Manos Pitsidianakis a7e177586a
Fix clippy lints 4 years ago
Manos Pitsidianakis b3876113aa
BackendOp: return future in as_bytes() 4 years ago
Manos Pitsidianakis def3997d6f
email/parser.rs: replace "FIXME" errors 4 years ago
Manos Pitsidianakis 01d83d8088
email/parser: do not set has_colon newline
When parsing a field-name, and expecting a colon (:) if a newline is
first encountered do not set `has_colon` flag to true.
4 years ago
Manos Pitsidianakis 75f9256a50
email/parser: change Error type to include error location
Add ParsingError type that includes a string with the location and
possibly an explanation for the error.
4 years ago
Manos Pitsidianakis 6ec249dd7f
melib: update nom dependency from 3.2.0 to 5.1.1
That was hecking exhausting
4 years ago
Manos Pitsidianakis 8c1c628c2c
melib: fix non-unicode encode_header() char boundary issue 4 years ago
Manos Pitsidianakis 815ff98acc
imap: add smarter untagged reply detection 4 years ago
Manos Pitsidianakis 671d473894
email/parser: avoid slice index panic if slice is empty 4 years ago
Manos Pitsidianakis eb701695f7
Remove fnv crate 4 years ago
Manos Pitsidianakis b00d3c28c5
parser: fix panic on invalid encoded_word, display_addr
found by cargo-fuzz
4 years ago
Manos Pitsidianakis 5981f98f17
parser: fix panic on invalid message id 4 years ago
Manos Pitsidianakis f2ecb81612
parser: fix panic on invalid input
Found with cargo-fuzz
4 years ago
Manos Pitsidianakis 5d07a5147b
datetime: fix panic on invalid cstr conversion 4 years ago
Manos Pitsidianakis 5842a63e37
melib: ignore Draft body if empty for multipart mail 5 years ago
Manos Pitsidianakis ad2a51891b
melib: print attachment name in Display for text/* 5 years ago
Manos Pitsidianakis 6ccb9d3d75
melib/src/email/address.rs: Fix invalid UTF8 panic
In StrBuilder::display there's an assumption that the string is valid utf-8 but if an email contains an invalid string inside the MIME encoded word part the conversion panics. Change it to a lossy UTF-8 conversion instead. Fixes #19

Reported-By: cycomanic
5 years ago
Manos Pitsidianakis 9afb636894
melib/email: fix whitespace duplication in mime encoding 5 years ago
Manos Pitsidianakis 33c1bf6558
Add consume newlines flag to phrase() 5 years ago
Manos Pitsidianakis 68007a0842
View decoded email source by default
Toggle between decoded/raw source with view_raw_source shortcut, default
M-r
5 years ago
Manos Pitsidianakis 6b7dea35dc
melib/parser: fix minor encoded word error 5 years ago
Manos Pitsidianakis 6afac835e0
melib/datetime: fix overflow panic on early date input 5 years ago
Manos Pitsidianakis 05b91f1c02
Remove text_processing
Unwrap text_processing into melib

In preparation for uploading meli as a separate crate on crates.io.
5 years ago
Manos Pitsidianakis 8b6ea8de9a
Remove ui crate
Merge ui crate with root crate.

In preparation for uploading `meli` as a separate crate on crates.io.

Workspace crates will need to be published as well and having a separate
`ui` crate and binary perhaps doesn't make sense anymore.
5 years ago
Manos Pitsidianakis 6a096dd405
Add missing copyright preambles 5 years ago
Manos Pitsidianakis 853fe14128
melib: fix two minor email parsing bugs
- windows-1250 encoding not being recognized
- spaces in Message-ID header messing up parsing '<' + msg-id + '>'
structure
5 years ago
Manos Pitsidianakis a365a846b8
Replace StackVec with smallvec::SmallVec
SmallVec has a less buggy and better implementation.
5 years ago
Manos Pitsidianakis c0ac643f05
melib: add datetime module
Datetime module adds POSIX time functions interface
5 years ago
Manos Pitsidianakis 6671fe926e
melib: don't treat missing end boundary as error
Don't treat missing end boundary as error in multipart attachments.

python3's nntplib seems to return MIME attachments with this property
5 years ago
Manos Pitsidianakis 8694278369
ui: add auto_choose_multipart_alternative
Choose text/html by default if text/plain is empty in
multipart/alternative attachments

This happens in some newsletters I've come upon
5 years ago
Manos Pitsidianakis 92826f982f
melib/attachments: add MultipartType::Related kind 5 years ago
Manos Pitsidianakis c23cc45edd
melib: fix test import not found 5 years ago
Manos Pitsidianakis 1ee8ef7a05
JMAP WIP #4 5 years ago
Manos Pitsidianakis 7732b851e6
melib: fix minor header parsing errors
- set_subject checked if last byte was control character instead of last
character. Characters can be multi-byte, duh.
- email::parser::date didn't provide for Date values that had -0000
instead of +0000 (that's a chrono requirement/bug)
5 years ago
Manos Pitsidianakis 81c70b0136
melib: small test cosmetic fixes 5 years ago
Manos Pitsidianakis e79d9aa1c2
melib/parser: parse quote-printable CRLF soft breaks
Check for CRLF soft breaks after checking for LF ones
5 years ago
Manos Pitsidianakis d048d8566d
ui: add format=flowed if text/plain att is the only one 5 years ago
Manos Pitsidianakis bb486ca9d8
melib: Remove quotes from addresses in email/parser.rs 5 years ago
Manos Pitsidianakis 3dfb2f4f2c
melib: fix out-of-bounds parser bug 5 years ago
Manos Pitsidianakis 58209d6f6b
Replace some panics with errors 5 years ago
Manos Pitsidianakis ce646abc7a
ui: add send confirmation dialog in compose tab
Confirm before sending mail
5 years ago
Manos Pitsidianakis 51628ac9d2
ui: move list_management mod to melib
list_management module includes some small functions to handle mailing
list metadata (List-* headers)
5 years ago
Manos Pitsidianakis 449a24d075
ui: ListActions changes
- Parse List-Post value like List-Unsubscribe: comma separated angle bracket limited list of <mailto:> or <url> values
- Check if List-Archive value is angle bracket delimited
5 years ago
Manos Pitsidianakis fc2d9a684d
melib/imap: set has_attachments based on BODYSTRUCTURE
fetch BODYSTRUCTURE along with ENVELOPE from server and set
has_attachments based on the MIME structure of the envelope.

Notes: BODYSTRUCTURE returns the MIME structure of the envelope without
the data, so if it includes a multipart/mixed it *should* have
attachments.
ENVELOPE returns basic headers of the message like Sender, Subject, Date
etc.
5 years ago
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
5 years ago
Manos Pitsidianakis 04e1137b36
melib: add "On ${date} ${author} wrote" heading in replies 5 years ago
Manos Pitsidianakis 56cda63c83
Fix some warnings 5 years ago
Manos Pitsidianakis dce1c39b48
ui: add mailcap support 5 years ago
Manos Pitsidianakis 06d99c7f92
ui: Add save attachment command
use as `save-attachment ATTACHMENT_INDEX PATH`
5 years ago