emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Exchange 2007 Issues When Copying Between Folders


From: Simon Josefsson
Subject: Re: Exchange 2007 Issues When Copying Between Folders
Date: Tue, 01 Apr 2008 16:06:41 +0200
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/22.1 (gnu/linux)

Ted Zlatanov <address@hidden> writes:

> On Mon, 31 Mar 2008 10:54:12 -0400 Jake Colman <address@hidden> wrote: 
>
> JC> Ted suggested that I post here as I find more issues with using Gnus
> JC> with Exchange 2007.
>
> JC> If I move an email between IMAP folders ('B m'), I get the following 
> messages:
>
> JC> Registry: Registering article 6 with group 
> nnimap+exchange-d01:INBOX/Development/gnu
> JC> Registry: Registering article 7 with group 
> nnimap+exchange-d01:INBOX/Development/gnu
> JC> Moving to nnimap+exchange-d01:INBOX/Development/CVS: (6)...
> JC> nnimap-request-move-article: this is an internal move
> JC> The specified message set is invalid.
> JC> Couldn't Move article 6: The specified message set is invalid.
> JC> nnimap: Updating info for nnimap+exchange-d01:INBOX/Development/gnu...
> JC> nnimap: Updating info for nnimap+exchange-d01:INBOX/Development/gnu...done
>
> JC> The message is, in fact, copied between the 'gnu' folder and the 'CVS'
> JC> folder but it is not deleted from the 'gnu' folder.
>
> JC> I am attaching the output of the imap-debug buffer showing everything 
> starting
> JC> with pressing 'B m'.
>
> The command that caused the problem:
>
> 511 UID FETCH * UID
>
> (copying emacs-devel regarding the maintenance issue)
>
> Simon Josefsson hasn't replied to my pings, so I think he may not be
> available for imap.el support.  Simon, please let us know if that's not
> the case.

Hi!  Sorry for not responding, I have been busy with other things, and I
don't have much time to work on (nn)imap.el any more.  I have time to
review concrete patches, but little time to help debug problems with
some servers.

However, the recently installed patch for Gnus is definitely the wrong
thing:

-         (imap-fetch "1,*" "UID" nil 'nouidfetch)
+         (imap-fetch "1:*" "UID" nil 'nouidfetch)

This generates thousands and thousands of unnecessary lines of output,
such as:

669 FETCH 1:* UID
* 1 FETCH (UID 53159)
* 2 FETCH (UID 53160)
* 3 FETCH (UID 53161)
...
* 103915 FETCH (UID 157074)
* 103916 FETCH (UID 157075)
* 103917 FETCH (UID 157076)
669 OK Completed

That's about 2-3MB of output, and that was getting information for one
of my folders (I subscribe to maybe 100-150 folders..).

This slows down pressing 'g' on my server from sub-seconds to a very
long time (I pressed C-g after half a minute).

This is how the output should look like:

698 FETCH 1,* UID
* 1 FETCH (UID 53159)
* 103918 FETCH (UID 157077)
698 OK Completed

That's 89 bytes and takes ms's to transfer.

If you want this bug workaround in the code, please make it conditional
on some variable that is disabled by default.  I suggest documenting
that this may slow down things considerably.

> I'm willing to dig further and maybe support imap.el if no one else
> wants it, but honestly the IMAP RFCs are unpleasant and annoy me, so I
> need a better explanation of the protocol.  Google was not helpful.  Can
> anyone suggest an IMAP primer I can read?  I'm interested in the actual
> protocol, so the more concrete the examples, the better.

I'm not aware of any, and I would agree that the RFC is unfriendly...
if you can't find any primer, just toggle imap-log and try to understand
the commands send by Gnus for each operation that is needed.  Read the
RFC for full explanations of some things.

/Simon




reply via email to

[Prev in Thread] Current Thread [Next in Thread]