Alexander Krotov
41f776763b
Remove MarkseenMdnOnImap
...
MarkseenMdnOnImap stored server folder and UID which are never updated
by update_server_uid. Now hidden entries are created for MDNs, so they
should be handled as ordinary messages.
2020-04-01 20:06:27 +03:00
Alexander Krotov
5b3bec1aac
Create entries in msgs table for MDNs
...
At least one entry is required for DeleteMsgOnImap job. Additionally,
adding a hidden entry makes it possible to avoid redownloading the
message if it gets a new UID on the server.
2020-04-01 20:06:27 +03:00
Alexander Krotov
d78ea882c8
Update mailparse to 0.12
2020-03-31 18:11:44 +02:00
Alexander Krotov
3c342339a1
imap: use parse_message_id from mimeparser
2020-02-22 16:41:07 +01:00
Alexander Krotov
508b8ef2e2
Improve documentation, mostly by hiding behind pub(crate)
2020-02-20 23:37:13 +03:00
Alexander Krotov
bcbf192bbc
Remove deprecated Chat-Group-Image header
2020-02-17 13:41:50 +01:00
Alexander Krotov
e00d4e0ed8
Remove AvatarAction::None
...
Where needed, Option<AvatarAction> can be used to extend it.
2020-02-16 15:03:37 +03:00
Alexander Krotov
5a4040cf0b
cargo fmt
2020-02-16 03:22:30 +03:00
Alexander Krotov
b54f580e66
mimeparser: allow "inline" attachments
...
RFC 2183 specifically allows filenames to be specified for MIME parts
with "inline" Content-Disposition.
Previously we treated such attachments as an error, causing the whole
message parsing to fail. Now it is only an error if Content-Disposition
cannot be parsed.
MIME parts with filename are now considered to be attachments
regardless of their Content-Disposition type. However, "attachment"
Content-Disposition is still processed differently: we generate a
filename for it even if it is not specified.
2020-02-16 03:22:30 +03:00
Alexander Krotov
66fdb447f7
Rename get_headerdef into get_header_value
2020-02-11 01:59:41 +03:00
Alexander Krotov
c801775a39
Implement get_headerdef method for MailHeader slices
2020-02-11 01:59:41 +03:00
Alexander Krotov
b4573e341f
Return &'static str from HeaderDef.get_headername()
2020-02-09 19:17:27 +01:00
Alexander Krotov
8ef7b6fc54
mimeparser: pass the Context around explicitly
2020-02-03 23:48:55 +03:00
Alexander Krotov
07a5ee7d2c
mimeparser: construct MimeMessage at the end of from_bytes()
...
This reduces the scope of code dealing with mutable structures.
2020-01-28 17:46:16 +03:00
Alexander Krotov
c7a300be2f
mimeparser: split parse_headers() into multiple functions
2020-01-28 17:46:16 +03:00
Alexander Krotov
90a4303c8e
Make it possible to compile with stable Rust
2020-01-21 19:50:42 +03:00
holger krekel
d3b1972505
fix master build
2020-01-21 17:27:21 +01:00
holger krekel
e49e2021e5
i don't think this fuzzy test is very useful -- the mime-parser will end very early on random-input and DC's parsing machinery probably almost never runs.
2020-01-21 16:00:59 +01:00
Alexander Krotov
1732c3b350
Reduce the scope of clippy exceptions
...
This prevents creation of new overly complex functions.
2020-01-21 14:49:53 +01:00
Alexander Krotov
b50d2358d3
Rename X-Additional-Message-IDs into Additional-Message-IDs
...
X- prefixes are deprecated in https://tools.ietf.org/html/rfc6648
2020-01-20 00:35:11 +03:00
Alexander Krotov
493bf5ed08
Parse additional message IDs in MDNs
2020-01-20 00:35:11 +03:00
Alexander Krotov
fecfaaf812
Test MDN parsing
2020-01-20 00:35:11 +03:00
Alexander Krotov
c7b2bdfaac
mimeparser: simplify get_subject() and get_rfc724_mid
2020-01-11 14:59:53 +01:00
Floris Bruynooghe
72cfb70e35
Refactor create_chat_from_msg_id
...
The goal here is to not have a `mut chat_id` as I want to change chat
id into an opaque newtype and we can't modify it like that anymore.
2020-01-08 14:58:44 +01:00
Alexander Krotov
40dc180b88
Update mailparse to 0.10.2
...
It does not allow parsing emails without @
2020-01-08 16:52:27 +03:00
Alexander Krotov
4529c326c6
Restore newlines and remove semicolon in test_parse_first_addr
2020-01-07 17:23:59 +01:00
Alexander Krotov
a52131b574
cargo fmt
2020-01-07 17:23:19 +01:00
Alexander Krotov
a48d0492c8
Create only one MarkseenMdnOnImap job even if message has multiple reports
...
All created jobs have the same parameters and move the same message,
so it does not make sense to create more than one.
2020-01-07 17:23:19 +01:00
Alexander Krotov
2bba1be817
Show received MDNs even if user has disabled them
...
Delta Chat does not request MDNs if they are disabled, so this change
does not make much difference, but simplifies the logic.
2020-01-07 17:23:19 +01:00
Floris Bruynooghe
9a3bdfb14b
Rename MimeParser to MimeMessage in mimeparser.rs
...
The struct really represents a parsed MIME message and is not used as
a parser itself. After the from_bytes() call (which should arguably
use the FromStr trait instead) the struct is fully populated.
2020-01-06 09:46:47 +00:00
Alexander Krotov
8702f290af
mimeparser: remove unused parsed_protected_headers field
2020-01-05 22:03:10 +01:00
Alexander Krotov
d0b5b7ba03
Turn handle_reports comment into documentation comment
2020-01-04 22:24:16 +01:00
Alexander Krotov
91100d3fac
Lowercase the addresses before gossip peerstate update
...
Normally it happens in addr_cmp function, but update_gossip_peerstates
forms a HashSet of addresses, so they should be lowercased beforehand.
Also adjust the mail_with_cc.txt to test for non-lowercase addresses.
2020-01-02 18:14:27 +00:00
Alexander Krotov
c4e0647bda
Remove NULs from mimeparser tests
2019-12-30 17:32:39 +01:00
Alexander Krotov
6dcc1e09b9
mimeparser: add message.kml parsing test
2019-12-30 17:29:28 +01:00
Alexander Krotov
c9f6e31ca9
Move dc_simplify.rs to simplify.rs
2019-12-20 12:55:57 +01:00
Alexander Krotov
fe4080d59f
refactor(simplify): move dehtml dependency to mimeparser
...
This change also removes unnecessary String clone for HTML messages.
2019-12-20 12:55:57 +01:00
Alexander Krotov
1ee15942cc
Simplify simplify.rs
...
* Remove Simplify structure.
* Match for lines starting with 5 markers, not consisting of exactly 5 markers.
This is a regression from C to Rust conversion, see
2bb1c280d5/src/dc_simplify.c (L154)
* Add tests.
2019-12-16 02:31:38 +03:00
holger krekel
09c7ab1ee6
avoid addrparse to panic() and refactor according code a little with test.
2019-12-15 21:54:20 +01:00
holger krekel
4bacae3711
fix #1037 and simplify mdn-report related code and state
2019-12-15 22:18:34 +03:00
Alexander Krotov
256bb01606
Make prepend_subject a bool
2019-12-15 19:55:49 +01:00
B. Petersen
888507f7ba
test group- and user-avatars in the same mail
2019-12-13 01:17:48 +01:00
B. Petersen
29866092de
adapt the protected-header test; protected-headers really require encryption now and parts of the tests are know to fail now. however, protected-headers are also tested in python implicitly in several places
2019-12-13 01:17:48 +01:00
holger krekel
5e777b3c51
fix test also for avatar deletion, use that drain filter while we in this code area :)
2019-12-13 01:17:48 +01:00
holger krekel
5690c48863
fix merging of protected headers
2019-12-13 01:17:48 +01:00
B. Petersen
409c96e571
add compatiblity headers
2019-12-13 01:17:48 +01:00
B. Petersen
d681fa6cba
use Chat-User-Avatar and Chat-Group-Avatar
...
we change the name on the wire as the old Chat-Group-Image header
could not be used on random mails, it was the marker for a "Changed" message,
if we would keep this names, things will fail for exising installations
as messages are dropped and a "Group image changed" message is shown instead.
2019-12-13 01:17:48 +01:00
B. Petersen
7c3d8356c4
always handle incoming group-avatars
2019-12-13 01:17:48 +01:00
B. Petersen
ab12a4eb39
move ImageAction parsing to a reusable function
2019-12-13 01:17:48 +01:00
B. Petersen
c3fd0889e2
use tri-state ImageAction instead of Option<Option>
2019-12-13 01:17:48 +01:00