[horde] Outlook Debugging Day
Michael J Rubinsky
mrubinsk at horde.org
Mon May 26 13:41:40 UTC 2014
Quoting Patrick De Zordo <patrick at spamreducer.eu>:
>> -----Ursprüngliche Nachricht-----
>> Von: Michael J Rubinsky [mailto:mrubinsk at horde.org]
>> Gesendet: Montag, 26. Mai 2014 03:07
>> An: Patrick De Zordo
>> Betreff: Re: AW: Re: Outlook Debugging Day
>>
>>
>> Quoting Patrick De Zordo <patrick at spamreducer.eu>:
>>
>> > Ok,
>> > if you need a running ActiveSync Server for debugging, as promised,
>> > just give me half an hour to do the server install in datacenter for
>> > ya.
>> >
>> > Here ya!
>> > You are welcome!
>>
>> My proof of concept failed. This was not the issue. The only
>> possibility left is
>> that OL has a flawed implementation of the MOVEITEMS command. Really
>> nothing else I can do about it at this point.
>
> Not good news, I'm really disappointed.
So am I, after spending days and days of my own time tracking this down.
> Have you debug'ed on a "running" ActiveSync server?
What do you mean by a "running" ActiveSync server? ActiveSync is the
protocol. Horde IS an ActiveSync server. Do you mean Exchange
(Exchange won't connect to OL2013 using ActiveSync) or do you mean the
proprietary/commercial SmarterMail product with the commercial
ActiveSync add-on you pointed out earlier?
> What is he doing to "correct" the strange behavior of OL?
I have no idea. If you are talking about SmarterMail, I didn't install
it, haven't tested it. My guess is that the ADD command isn't sent to
OL clients, though that doesn't completely explain why my tests
initially worked on my test server. If you provide me with either a
wiretrace of a session on SmarterMail where you don't see this
behavior, or non-SSL access to a running SmarterMail server with EAS
enabled along with a test account on that server where I can receive
email, I'll do a quick test and trace myself - but see below.
I am intimately familiar with the EAS protocol specification. I have
also read, re-read, and then read again the published Microsoft
specification for the commands involved in this issue over the last 2
weeks. Horde is following the specification EXACTLY. This is what the
specification says MUST happen:
1) User deletes an email.
2) Client sends a MOVEITEMS request to the server with the source
folder id, message UID, and destination folder id.
3) Server executes the move. On success, the client receives a SUCCESS
status code, along with the new UID of the message in the destination
folder.
4) On the next SYNC request, the client is sent an ADD command for the
destination folder for the moved message. This message may have a new
UID. The client is sent a REMOVE command for the message moved out of
the source folder.
That's it. Nowhere does it say that the server shouldn't send an ADD
command, or that the client should move the item on it's own.
During my latest tests, I discovered that if the email is deleted via
another client (which only shows one copy of the email), BOTH copies
are deleted from OL. This leads me to believe that what OL is doing is
moving the message on it's own, then when it receives the SUCCESS
status and new UID, it simply assigns this UID to the message it moved
on it's own, instead of waiting for (or ignoring) the ADD command with
the same UID. This is absolutely a violation of the protocol, as
currently published.
Even if we were to work around this for only OL2013 (which is a
horrible, horrible hack), it would require a fair amount of work since:
1) The places that we generate the server delta has no idea about the
client. I.e., we can't ignore a change at this stage of the code.
2) Even if stuff is refactored to allow for (1) we would need to
change the information that is stored when items are moved via a
MOVEITEMS command to include a MESSAGE-ID (though that isn't always
guaranteed to be there) and probably the destination folder id/message
UID combination. Otherwise we would have no idea what message we
should ignore.
3) Also, what happens if/when Microsoft fixes this? That will require
yet another hack to not only sniff out OL, but to sniff the version as
well.
This is not something that I'm going to do on my own time. If this is
really important to your organization you could consider sponsoring
the work.
For what it's worth, OL2013 is the ONLY client that I have ever seen
that does this, including other Microsoft clients, like Windows Mail
and Windows Phone/Mobile.
--
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5869 bytes
Desc: S/MIME Signature
URL: <http://lists.horde.org/archives/horde/attachments/20140526/6e71bf8d/attachment.bin>
More information about the horde
mailing list