[Dovecot] Workaround for outlook UIDL handling bug ??
Scenario: Using Dovecot 0.99.10.9 as pop3 server. With delete on retrival off.
clients: outlook*
Problem: Everytihng work perfectly, except that outlooks keeps re-downloading SOME mail over and over. Though it already got them. No obvious pattern which, but only a small percentage.
First of I looked at dovecots UIDLs. Initialy I thought it's broken (see my previous thread) Sorry for even thinking that, it's ok, my bad :) Rather, outlooks UIDL handling seems to be very broken :(
But I think I found an easy workaround.
Dovecots UIDLS seem to be
timestamp.message#
eg.
1 1093990148.1 2 1093990148.2 3 1093990148.3 4 1093990148.4 5 1093990148.5 6 1093990148.6 7 1093990148.7 8 1093990148.8 9 1093990148.9 10 1093990148.10 11 1093990148.11 12 1093990148.12
The problems started with #10
-> Asumption: outlook falsy only takes a fixed numbers of chars to hold the UIDL, the rest ist ignored. Perhaps only the first 13 or so.
What I did is reversing the order in UIDL generation. Instead of
timestamp.message# -> message#.timestamp.
Seems to work perfectly.
Well, a bit too early too tell if it really works. Need to wait a couple of days and see if the problem re-appears or not.
The only thing I'm 100% sure is that outlooks UIDL handling is broken.
BTW: very nice source code. Very easy to follow, took me 5 minutes to find the correct .c and routine.
In /pop3/command.c, list_uids() all I changed is
... mail->seq, client->uidvality, mail->uid to mail->seq, mail->uid, client->uidvality. (2 times)
If anyone is interested, I'll keep you informed if the problem is really gone with this mini-patch.
On 2.9.2004, at 21:50, Nikolaus Gerstmayr wrote:
Scenario: Using Dovecot 0.99.10.9 as pop3 server. With delete on retrival off.
clients: outlook* ..
http://support.microsoft.com/default.aspx?scid=kb;EN-US;872839
Is it this problem? Maybe just try to get people to install SP1?
I've been thinking about making the pop3 UID format configurable, but I can't anymore change the default.
On 2.9.2004, at 21:50, Nikolaus Gerstmayr wrote:
Scenario: Using Dovecot 0.99.10.9 as pop3 server. With delete on retrival off.
clients: outlook* ..
http://support.microsoft.com/default.aspx?scid=kb;EN-US;872839
Is it this problem? Maybe just try to get people to install SP1?
I've been thinking about making the pop3 UID format configurable, but I can't anymore change the default.
Unfortunatly, SP1 doesn't help. I read 872839 too, it gave me 5 minutes of hope, not not more :(
We had a mixture of outlook 2003's with Sp1 and without it, and a couple of outlook express 6.x's
ALL had the same problem with the SAME mails being redownlaoded all over :( Seems all microsoft mail clients share the same problematic UIDL code. Updated all outlook 2003's to SP1, didn't help either.
Found this in meantime: http://www.smartertools.com/Products/SmarterMail/ReleaseNotes.aspx
Unfortunatly it doesnt tell WHATS wrong with outlooks POP3 UIDL interpretation. Just that there is something wrong.
If you have something like # values: default, yet_another_outlookbug_workaround, ... #UIDL_SHEME default
it shouldnt be a big problem. if you can leave the old UIDL generation and its default. and warn what happens if you switch it.
Again, I cant be 100% sure yet if my attempt to workaround that problem really helps. Time of observation too short.
But looks good so far.
BTW: of course I'd prefer to kick the god damn outlook's and/or switch to IMAP, but unfortunately I'm not allowed to do that :(((
small FYI/update: After approx one week running dovecot with my small workaround,
- having received approx 30k-mails - not a single re-appearance of this outlook UIDL bug?/problem? (pop3+leave mail on server) anymore. So I declare it works for me (TM).
What you do with this info is - of course - ultimatvely up to you.
Again, I cant be 100% sure yet if my attempt to workaround that problem really helps. Time of observation too short.
But looks good so far.
BTW: of course I'd prefer to kick the god damn outlook's and/or switch to IMAP, but unfortunately I'm not allowed to do that :(((
participants (2)
-
Nikolaus Gerstmayr
-
Timo Sirainen