[imp] IMP 4.2 (RC4) / Mail.app interaction - changes made in mail.app not reflected in imp

Michael M Slusarz slusarz at horde.org
Fri Jun 6 19:18:07 UTC 2008


Quoting "Liam Hoekenga" <liamr at umich.edu>:

>>> I'm guessing it's some weird IMP message cache vs Mail.app message
>>> cache conflict.
>>>
>>> We're using 4.2RC4.
>>>
>>> Has anyone else seen something like this?
>>
>> Yeah, sure. You can turn of IMP's messagecache, but performance will suffer.
>
> Ok, I'm thinking outloud here...
>
> So here's what I think happens...
>
> Mail.app and IMP both cache email messages and mail indexes from the
> folders.  I'm going to guess that the problem is most likely to
> manifest if you're using both clients at the same time.  I'd expect it
> to, in fact.
>
> It /shouldn't/ if you're using one client and the other one is closed.
> Though, I wonder if it might if you...
> - use IMP, close your browser window (don't log out)
> - use Mail.app, delete some stuff.. quit
> - use IMP again, in the same browser
>
> If you haven't actually logged out of IMP, or quit your browser,
> you'll probably still have an active IMP session  (one clue would be
> if you opened a new browser window, accessed IMP, and it didn't tell
> you the last time you logged in).  So.. I wonder if you access IMP
> again using what it considers to still be an active session, if maybe
> it's not updating the cache like it should?
>
> Does IMP reconcile the cached version of the mailbox with what's on
> the server when a new session is created?

There is no way to determine if *IMAP flags* have changed for a  
message without downloading all information about a message - which  
defeats the whole purpose of caching.  This is a limitation with the  
current c-client library - the only way we can get flag information is  
multiple imap_search calls (which queries the entire mailbox 4 times  
to get the information needed), the imap_fetchstructure call (which  
returns all the information we are caching - not to mention the  
extremely inefficient way this function hits the IMAP server which  
won't be discussed here), or the imap_fetchheader call (why a fetch  
header call returns flag information is beyond me...).  So we only  
update flag information when a message is first inserted into the  
cache or if the flag change is done via IMP/DIMP/MIMP.

michael

-- 
___________________________________
Michael Slusarz [slusarz at horde.org]



More information about the imp mailing list