Re: Patch: set of fixes for Bodystruct backend



Hey José,

Awesome that you guys are finally picking up the bodystruct work.

Will you also change the summary fetch in the IMAP4 code to only fetch
ENVELOPE and BODYSTRUCT, and then immediately make the BODYSTRUCT pieces
available in the caches? Right now the code for turning a chunk of IMAP
reply into a CamelMessageInfo only eats raw headers, and not ENVELOPE.
And for the BODYSTRUCT part you'd just need to save that part as a
filename in the caches (to be compatible with the support that you are
hacking on right now).

The reason why you shouldn't fetch headers anymore, but instead
ENVELOPE, is because IMAP servers are vastly faster at giving you
ENVELOPE (and BODYSTRUCTURE) than at giving you message headers. All
IMAP servers cache ENVELOPE and BODYSTRUCTURE, whereas they have to
parse E-mails to get the headers of messages quickly (talk with IMAP
server developers, they'll all tell you).

ENVELOPE is also smaller in size, than headers are (because the header-
names aren't being repeated constantly).

This would also pave the way to storing things richly in RDF and it
would allow you to make a summary view that immediately shows you the
MIME parts, attachments, forwards, etc (and make things searchable,
although I'd highly recommend using tracker-store after storing things
in RDF for that capability, as this project is entirely focused around
this purpose - and please don't develop a NIH syndrome, we have plenty
of people with that syndrome already -).

I'm pretty sure this makes sense to you now that you are bodystructing
with your fetches:

http://live.gnome.org/Tracker/Documentation/EmailSparql


On Mon, 2009-11-30 at 15:54 +0100, José Dapena Paz wrote:
> 	Hi,
> 
> 	This patch is a set of fixes for bodystruct support in tinymail:
> 	* Enables bodystruct usage for IMAP by default.
> 	* Fixes charset handling for text/plain bodies in bodystruct backend.
> 	* Method tny_camel_bs_mime_part_is_fetched, to know if an specific mime
> part has been already retrieved.
> 	* Added global filter to bodystructure retrieve strategy, so that
> get_msg downloads not only the headers strutcture, but also the parts
> that we expect to be bodies.
> 	* Fixes in imap message cache reload
> 	* Fixed fetching the header (as it won't be a TnyCamelMsgHeader in some
> cases it was expected to be that).
> 	* Fix storing "allow external images" flag in bodystructure backend.
> 	* In bodystruct mime parts, "generate" some flags if the part is not
> retrieved. I.e., mime part size, so that we can offer this number even
> when the mime part is not fetched.
> 
> 	Though the patch is for modest-3-2 branch, I would ask for careful
> review, as the goal is having this both in tinymail trunk and our
> modest-3-2 branch.
> 
> 
> _______________________________________________
> tinymail-devel-list mailing list
> tinymail-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/tinymail-devel-list


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]