Trouble with Outlook 2013, especially with the upgrade from 12/8
Leena Heino
Leena.Heino at uta.fi
Fri Dec 11 09:52:07 EST 2015
On Fri, 11 Dec 2015, André Schild via Info-cyrus wrote:
> Outlook and IMAP is just pain, it's not intended to work, otherwise who would
> buy the exchange server?
>
> 1) We see this rather seldom, but sometimes mails come in after 2-10 hours,
> not even a "Fetch mail" helps
>
> 2) Definitively a major problem of Outlook 2013, working with IMAP folders in
> copy/rename operations is random at best
We might have had similar problems with Outlook 2013:
- Outlook would sometimes fail to create folders or recognize folders it
had created earlier
- Messages would get deleted or simply lost when they were copied between
folders
Attached is a patch that we used locally with Cyrus IMAPD 2.4.17 to
improve compatibility with Outlook 2013.
--
Leena Heino University of Tampere / Computer Centre
( liinu at uta.fi ) ( http://www.uta.fi/laitokset/tkk )
-------------- next part --------------
Patch to make Cyrus Imapd compatible with Outlook 2013.
This patch changes XLIST behaviour so that it works the same as in LIST
in a special case. After this patch the output should be:
. LIST "" ""
* LIST (\Noselect) "/" ""
. OK Completed (0.000 secs)
. XLIST "" ""
* XLIST (\Noselect) "/" ""
. OK Completed (0.000 secs)
diff -Naur cyrus-imapd-2.4.17.orig/imap/imapd.c cyrus-imapd-2.4.17/imap/imapd.c
--- cyrus-imapd-2.4.17.orig/imap/imapd.c 2012-12-01 21:57:54.000000000 +0200
+++ cyrus-imapd-2.4.17/imap/imapd.c 2014-07-24 13:51:26.885893900 +0300
@@ -6029,10 +6029,14 @@
list_callback_calls = 0;
- if (!listargs->pat->s[0] && !(listargs->cmd & LIST_CMD_LSUB)) {
+ if (!listargs->pat->s[0] && (listargs->cmd == LIST_CMD_LIST)) {
/* special case: query top-level hierarchy separator */
prot_printf(imapd_out, "* LIST (\\Noselect) \"%c\" \"\"\r\n",
imapd_namespace.hier_sep);
+ } else if (!listargs->pat->s[0] && (listargs->cmd == LIST_CMD_XLIST)) {
+ /* special case: query top-level hierarchy separator */
+ prot_printf(imapd_out, "* XLIST (\\Noselect) \"%c\" \"\"\r\n",
+ imapd_namespace.hier_sep);
} else if (((listargs->sel & LIST_SEL_SUBSCRIBED) ||
(listargs->ret & LIST_RET_SUBSCRIBED)) &&
(backend_inbox || (backend_inbox = proxy_findinboxserver(imapd_userid)))) {
More information about the Info-cyrus
mailing list