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 )
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)))) {
----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus

Reply via email to