GNOME Bugzilla – Bug 776251
Store headers from RFC message rather than trusting the IMAP server
Last modified: 2021-07-05 13:26:45 UTC
A few issues have now arisen from the fact that Geary stores header values in the db that it obtains from IMAP responses, rather than from the RFC822 message body itself: Invalid message IDs being stored (Bug 769254) and servers not handling multiple CC headers (Bug 769254). Instead (or in addition to) of storing these values from the IMAP response, once we have the full set of message headers, we should parse and store them. This may need some signals hooked up so the client knows message data may have changed. A comment at the top of Geary.Imap.Folder::fields_to_fetch_data_types suggests that using ENVELOPE is desirable for performance reasons, so maybe the existing approach of fetching a preview first then queuing a download of the full message body is still worth while, but in that case we should still update the headers and hence re-index, re-thread into conversations, etc when the full message body has been acquired. An alternative approach would be to just fetch the full headers along with the preview and use those straight away. See also comments about not having to fetch EVELOPEs in Geary.ImapEngine.EmailPrefetcher::do_prefetch_batch_async.
Bump tickets to 0.14 that aren't going to make 0.13.
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/geary/-/issues/ Thank you for your understanding and your help.