On Wed, Jul 13, 2016 at 04:02:10PM +0200, Gilles LAMIRAL wrote:
> Hi Oswald,
> > - 1. UIDVALIDITY change recovery
> 
> >      - it happens that messages have no Message-Id (in particular, this
> >        is permissible for drafts). the way around that is synthesizing
> >        one: fetch all available headers (subject, from, to, cc, bcc,
> >        date), concatenate them, and calculate a hash. the paranoid
> >        version would hash the whole message.
> 
> The paranoid version, nor the "take other headers" option, won't work
> most of the time. In the real world, servers change headers, a bit.
> Particularly the "Date:" one can be very different, as a string.
> Even Message-Id is sometimes changed; not the human readable value
> but case (uppercase, lowercase), spaces/tab are changed.
> 
this presumably doesn't happen once the message has been stored on the
server (everything else would be a violation of imap requirements). so
a possible hack is immediately re-fetching stored messages and replacing
the original (this becomes interesting when both stores are imap servers
...).
an alternative would be normalizing the headers according to the
expected interpretation.

> I also encountered really different messages with the same "Message-Id",
> sometimes.
> 
which is why mbsync doesn't use them for message identification in the
first place.
this isn't a big deal for uidvalidity recovery, as it's *really*
unlikely that messages would be shuffled in such a way that *all* uids
and message-ids still match, yet the messages are mixed up.
for move detection this is a somewhat bigger problem (depending on how
many messages were moved), which is why i brought up the paranoid mode.


------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to