Gnus development mailing list
 help / color / mirror / Atom feed
* Exchange 2007 Issues When Copying Between Folders
@ 2008-03-31 14:54 Jake Colman
  2008-03-31 18:50 ` Ted Zlatanov
  0 siblings, 1 reply; 16+ messages in thread
From: Jake Colman @ 2008-03-31 14:54 UTC (permalink / raw)
  To: ding; +Cc: tzz

[-- Attachment #1: Type: text/plain, Size: 1141 bytes --]


Ted suggested that I post here as I find more issues with using Gnus
with Exchange 2007.

If I move an email between IMAP folders ('B m'), I get the following messages:

Registry: Registering article 6 with group nnimap+exchange-d01:INBOX/Development/gnu
Registry: Registering article 7 with group nnimap+exchange-d01:INBOX/Development/gnu
Moving to nnimap+exchange-d01:INBOX/Development/CVS: (6)...
nnimap-request-move-article: this is an internal move
The specified message set is invalid.
Couldn't Move article 6: The specified message set is invalid.
nnimap: Updating info for nnimap+exchange-d01:INBOX/Development/gnu...
nnimap: Updating info for nnimap+exchange-d01:INBOX/Development/gnu...done

The message is, in fact, copied between the 'gnu' folder and the 'CVS'
folder but it is not deleted from the 'gnu' folder.

I am attaching the output of the imap-debug buffer showing everything starting
with pressing 'B m'.

Thanks for any help anyone can provide.

-- 
Jake Colman
Director of Software Development
Principia Partners LLC
101 West Elm Street
Suite 620
Conshohocken, PA  19428
+1 (610) 755-9786
www.principiapartners.com



[-- Attachment #2: imap.log --]
[-- Type: text/plain, Size: 55526 bytes --]

======================================================================
1 -> imap-opened: buffer=" *nnimap* exchange-d01"
| 2 -> imap-send-command-wait: command="NOOP" buffer=nil
| | 3 -> imap-send-command: command="NOOP" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="508 NOOP"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 508
| | 3 -> imap-wait-for-tag: tag=508 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="508 OK NOOP completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 25
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-opened: t
======================================================================
1 -> imap-current-mailbox-p: mailbox="INBOX/Development/gnu" examine=nil buffer=nil
| 2 -> imap-current-mailbox-p-1: mailbox="INBOX/Development/gnu" examine=nil
| 2 <- imap-current-mailbox-p-1: t
1 <- imap-current-mailbox-p: t
======================================================================
1 -> imap-message-copy: articles="6" mailbox="INBOX/Development/CVS" dont-create=dontcreate no-copyuid=nil buffer=" *nnimap* exchange-d01"
| 2 -> imap-send-command-wait: command="UID COPY 6 \"INBOX/Development/CVS\"" buffer=nil
| | 3 -> imap-send-command: command="UID COPY 6 \"INBOX/Development/CVS\"" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="509 UID COPY 6 \"INBOX/Development/CVS\""
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 509
| | 3 -> imap-wait-for-tag: tag=509 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="509 OK COPY completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 25
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
| 2 -> imap-message-copyuid-1: mailbox="INBOX/Development/CVS"
| | 3 -> imap-capability: identifier=UIDPLUS buffer=nil
| | 3 <- imap-capability: nil
| | 3 -> imap-mailbox-examine-1: mailbox="INBOX/Development/CVS" buffer=nil
| | | 4 -> imap-mailbox-select-1: mailbox="INBOX/Development/CVS" examine=examine
| | | | 5 -> imap-current-mailbox-p-1: mailbox="INBOX/Development/CVS" examine=examine
| | | | 5 <- imap-current-mailbox-p-1: nil
| | | | 5 -> imap-send-command-wait: command="EXAMINE \"INBOX/Development/CVS\"" buffer=nil
| | | | | 6 -> imap-send-command: command="EXAMINE \"INBOX/Development/CVS\"" buffer=nil
| | | | | | 7 -> imap-send-command-1: cmdstr="510 EXAMINE \"INBOX/Development/CVS\""
| | | | | | 7 <- imap-send-command-1: nil
| | | | | 6 <- imap-send-command: 510
| | | | | 6 -> imap-wait-for-tag: tag=510 buffer=nil
| | | | | | 7 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* 35 EXISTS
* 2 RECENT
* FLAGS (\\Seen \\Answered \\Flagged \\Deleted \\Draft $MDNSent)
* OK [PERMANENTFLAGS ()] Permanent flags
* OK [UNSEEN 29] Is the first unseen message
* OK [UIDVALIDITY 1251] UIDVALIDITY value
* OK [UIDNEXT 40] The next unique identifier value
510 OK [READ-ONLY] EXAMINE completed.
"
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 14
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-mailbox-put: propname=exists value=35 mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 13
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-mailbox-put: propname=recent value=2 mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 62
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-flag-list: 
| | | | | | | | 9 <- imap-parse-flag-list: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| | | | | | | | 9 -> imap-mailbox-put: propname=flags value=("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent") mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 43
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | | 11 -> imap-parse-flag-list: 
| | | | | | | | | | 11 <- imap-parse-flag-list: nil
| | | | | | | | | | 11 -> imap-mailbox-put: propname=permanentflags value=nil mailbox=nil buffer=nil
| | | | | | | | | | 11 <- imap-mailbox-put: t
| | | | | | | | | 10 <- imap-parse-resp-text-code: t
| | | | | | | | 9 <- imap-parse-resp-text: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 47
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | | 11 -> imap-mailbox-put: propname=first-unseen value=29 mailbox=nil buffer=nil
| | | | | | | | | | 11 <- imap-mailbox-put: t
| | | | | | | | | 10 <- imap-parse-resp-text-code: t
| | | | | | | | 9 <- imap-parse-resp-text: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 44
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | | 11 -> imap-mailbox-put: propname=uidvalidity value="1251" mailbox=nil buffer=nil
| | | | | | | | | | 11 <- imap-mailbox-put: t
| | | | | | | | | 10 <- imap-parse-resp-text-code: t
| | | | | | | | 9 <- imap-parse-resp-text: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 53
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | 10 <- imap-parse-resp-text-code: nil
| | | | | | | | 9 <- imap-parse-resp-text: nil
| | | | | | | 8 <- imap-parse-response: nil
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 40
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | | 11 -> imap-mailbox-put: propname=read-only value=t mailbox=nil buffer=nil
| | | | | | | | | | 11 <- imap-mailbox-put: t
| | | | | | | | | 10 <- imap-parse-resp-text-code: t
| | | | | | | | 9 <- imap-parse-resp-text: t
| | | | | | | 8 <- imap-parse-response: nil
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: nil
| | | | | | 7 <- imap-arrival-filter: nil
| | | | | 6 <- imap-wait-for-tag: OK
| | | | 5 <- imap-send-command-wait: OK
| | | 4 <- imap-mailbox-select-1: "INBOX/Development/CVS"
| | 3 <- imap-mailbox-examine-1: "INBOX/Development/CVS"
| | 3 -> imap-fetch: uids="*" props="UID" receive=nil nouidfetch=nil buffer=nil
| | | 4 -> imap-send-command-wait: command="UID FETCH * UID" buffer=nil
| | | | 5 -> imap-send-command: command="UID FETCH * UID" buffer=nil
| | | | | 6 -> imap-send-command-1: cmdstr="511 UID FETCH * UID"
| | | | | 6 <- imap-send-command-1: nil
| | | | 5 <- imap-send-command: 511
| | | | 5 -> imap-wait-for-tag: tag=511 buffer=nil
| | | | | 6 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="511 BAD The specified message set is invalid.
"
| | | | | | 7 -> imap-find-next-line: 
| | | | | | 7 <- imap-find-next-line: 48
| | | | | | 7 -> imap-parse-response: 
| | | | | | | 8 -> imap-parse-resp-text: 
| | | | | | | | 9 -> imap-parse-resp-text-code: 
| | | | | | | | 9 <- imap-parse-resp-text-code: nil
| | | | | | | 8 <- imap-parse-resp-text: nil
| | | | 5 <- imap-wait-for-tag: (511 BAD nil "The specified message set is invalid.")
| | | 4 <- imap-send-command-wait: (511 BAD nil "The specified message set is invalid.")
| | 3 <- imap-fetch: nil
| | 3 -> imap-mailbox-select: mailbox="INBOX/Development/gnu" examine=nil buffer=nil
| | | 4 -> imap-mailbox-select-1: mailbox="INBOX/Development/gnu" examine=nil
| | | | 5 -> imap-current-mailbox-p-1: mailbox="INBOX/Development/gnu" examine=nil
| | | | 5 <- imap-current-mailbox-p-1: nil
| | | | 5 -> imap-send-command-wait: command="SELECT \"INBOX/Development/gnu\"" buffer=nil
| | | | | 6 -> imap-send-command: command="SELECT \"INBOX/Development/gnu\"" buffer=nil
| | | | | | 7 -> imap-send-command-1: cmdstr="512 SELECT \"INBOX/Development/gnu\""
| | | | | | 7 <- imap-send-command-1: nil
| | | | | 6 <- imap-send-command: 512
| | | | | 6 -> imap-wait-for-tag: tag=512 buffer=nil
| | | | | | 7 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* 7 EXISTS
* 0 RECENT
* FLAGS (\\Seen \\Answered \\Flagged \\Deleted \\Draft $MDNSent)
* OK [PERMANENTFLAGS (\\Seen \\Answered \\Flagged \\Deleted \\Draft $MDNSent)] Permanent flags
* OK [UNSEEN 6] Is the first unseen message
* OK [UIDVALIDITY 1257] UIDVALIDITY value
* OK [UIDNEXT 8] The next unique identifier value
512 OK [READ-WRITE] SELECT completed.
"
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 13
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-mailbox-put: propname=exists value=7 mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 13
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-mailbox-put: propname=recent value=0 mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 62
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-flag-list: 
| | | | | | | | 9 <- imap-parse-flag-list: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| | | | | | | | 9 -> imap-mailbox-put: propname=flags value=("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent") mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 92
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | | 11 -> imap-parse-flag-list: 
| | | | | | | | | | 11 <- imap-parse-flag-list: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| | | | | | | | | | 11 -> imap-mailbox-put: propname=permanentflags value=("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent") mailbox=nil buffer=nil
| | | | | | | | | | 11 <- imap-mailbox-put: t
| | | | | | | | | 10 <- imap-parse-resp-text-code: t
| | | | | | | | 9 <- imap-parse-resp-text: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 46
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | | 11 -> imap-mailbox-put: propname=first-unseen value=6 mailbox=nil buffer=nil
| | | | | | | | | | 11 <- imap-mailbox-put: t
| | | | | | | | | 10 <- imap-parse-resp-text-code: t
| | | | | | | | 9 <- imap-parse-resp-text: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 44
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | | 11 -> imap-mailbox-put: propname=uidvalidity value="1257" mailbox=nil buffer=nil
| | | | | | | | | | 11 <- imap-mailbox-put: t
| | | | | | | | | 10 <- imap-parse-resp-text-code: t
| | | | | | | | 9 <- imap-parse-resp-text: t
| | | | | | | 8 <- imap-parse-response: t
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 52
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | 10 <- imap-parse-resp-text-code: nil
| | | | | | | | 9 <- imap-parse-resp-text: nil
| | | | | | | 8 <- imap-parse-response: nil
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: 40
| | | | | | | 8 -> imap-parse-response: 
| | | | | | | | 9 -> imap-parse-resp-text: 
| | | | | | | | | 10 -> imap-parse-resp-text-code: 
| | | | | | | | | 10 <- imap-parse-resp-text-code: nil
| | | | | | | | 9 <- imap-parse-resp-text: nil
| | | | | | | 8 <- imap-parse-response: nil
| | | | | | | 8 -> imap-find-next-line: 
| | | | | | | 8 <- imap-find-next-line: nil
| | | | | | 7 <- imap-arrival-filter: nil
| | | | | 6 <- imap-wait-for-tag: OK
| | | | 5 <- imap-send-command-wait: OK
| | | 4 <- imap-mailbox-select-1: "INBOX/Development/gnu"
| | 3 <- imap-mailbox-select: "INBOX/Development/gnu"
| 2 <- imap-message-copyuid-1: nil
1 <- imap-message-copy: nil
======================================================================
1 -> imap-error-text: buffer=" *nnimap* exchange-d01"
1 <- imap-error-text: "The specified message set is invalid."
======================================================================
1 -> imap-opened: buffer=" *nnimap* exchange-d01"
| 2 -> imap-send-command-wait: command="NOOP" buffer=nil
| | 3 -> imap-send-command: command="NOOP" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="513 NOOP"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 513
| | 3 -> imap-wait-for-tag: tag=513 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="513 OK NOOP completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 25
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-opened: t
======================================================================
1 -> imap-current-mailbox-p: mailbox="INBOX/Development/gnu" examine=nil buffer=nil
| 2 -> imap-current-mailbox-p-1: mailbox="INBOX/Development/gnu" examine=nil
| 2 <- imap-current-mailbox-p-1: t
1 <- imap-current-mailbox-p: t
======================================================================
1 -> imap-message-flag-permanent-p: flag="\\Seen" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
======================================================================
1 -> imap-search: predicate="UNSEEN UNDELETED" buffer=nil
| 2 -> imap-mailbox-put: propname=search value=dummy mailbox=nil buffer=nil
| 2 <- imap-mailbox-put: t
| 2 -> imap-send-command-wait: command="UID SEARCH UNSEEN UNDELETED" buffer=nil
| | 3 -> imap-send-command: command="UID SEARCH UNSEEN UNDELETED" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="514 UID SEARCH UNSEEN UNDELETED"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 514
| | 3 -> imap-wait-for-tag: tag=514 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* SEARCH 6 7
514 OK SEARCH completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 15
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-mailbox-put: propname=search value=(6 7) mailbox=nil buffer=nil
| | | | | 6 <- imap-mailbox-put: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 27
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-search: (6 7)
======================================================================
1 -> imap-search: predicate="SEEN" buffer=nil
| 2 -> imap-mailbox-put: propname=search value=dummy mailbox=nil buffer=nil
| 2 <- imap-mailbox-put: t
| 2 -> imap-send-command-wait: command="UID SEARCH SEEN" buffer=nil
| | 3 -> imap-send-command: command="UID SEARCH SEEN" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="515 UID SEARCH SEEN"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 515
| | 3 -> imap-wait-for-tag: tag=515 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* SEARCH 1 2 3 4 5
515 OK SEARCH completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 21
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-mailbox-put: propname=search value=(1 2 3 4 5) mailbox=nil buffer=nil
| | | | | 6 <- imap-mailbox-put: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 27
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-search: (1 2 3 4 5)
======================================================================
1 -> imap-message-flag-permanent-p: flag="\\Flagged" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: ("\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
======================================================================
1 -> imap-mailbox-get: propname=flags mailbox=nil buffer=nil
1 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
======================================================================
1 -> imap-search: predicate="FLAGGED" buffer=nil
| 2 -> imap-mailbox-put: propname=search value=dummy mailbox=nil buffer=nil
| 2 <- imap-mailbox-put: t
| 2 -> imap-send-command-wait: command="UID SEARCH FLAGGED" buffer=nil
| | 3 -> imap-send-command: command="UID SEARCH FLAGGED" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="516 UID SEARCH FLAGGED"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 516
| | 3 -> imap-wait-for-tag: tag=516 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* SEARCH
516 OK SEARCH completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 11
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-mailbox-put: propname=search value=nil mailbox=nil buffer=nil
| | | | | 6 <- imap-mailbox-put: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 27
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-search: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="\\Answered" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: ("\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
======================================================================
1 -> imap-mailbox-get: propname=flags mailbox=nil buffer=nil
1 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
======================================================================
1 -> imap-search: predicate="ANSWERED" buffer=nil
| 2 -> imap-mailbox-put: propname=search value=dummy mailbox=nil buffer=nil
| 2 <- imap-mailbox-put: t
| 2 -> imap-send-command-wait: command="UID SEARCH ANSWERED" buffer=nil
| | 3 -> imap-send-command: command="UID SEARCH ANSWERED" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="517 UID SEARCH ANSWERED"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 517
| | 3 -> imap-wait-for-tag: tag=517 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* SEARCH
517 OK SEARCH completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 11
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-mailbox-put: propname=search value=nil mailbox=nil buffer=nil
| | | | | 6 <- imap-mailbox-put: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 27
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-search: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-expire" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-killed" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-bookmark" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-dormant" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-score" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-save" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-cache" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-download" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-unsend" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-forward" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-search: predicate="RECENT" buffer=nil
| 2 -> imap-mailbox-put: propname=search value=dummy mailbox=nil buffer=nil
| 2 <- imap-mailbox-put: t
| 2 -> imap-send-command-wait: command="UID SEARCH RECENT" buffer=nil
| | 3 -> imap-send-command: command="UID SEARCH RECENT" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="518 UID SEARCH RECENT"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 518
| | 3 -> imap-wait-for-tag: tag=518 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* SEARCH
518 OK SEARCH completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 11
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-mailbox-put: propname=search value=nil mailbox=nil buffer=nil
| | | | | 6 <- imap-mailbox-put: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 27
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-search: nil
======================================================================
1 -> imap-message-flag-permanent-p: flag="gnus-seen" mailbox=nil buffer=nil
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| 2 -> imap-mailbox-get: propname=permanentflags mailbox=nil buffer=nil
| 2 <- imap-mailbox-get: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
1 <- imap-message-flag-permanent-p: nil
======================================================================
1 -> imap-current-mailbox-p: mailbox="INBOX/Development/gnu" examine=nil buffer=nil
| 2 -> imap-current-mailbox-p-1: mailbox="INBOX/Development/gnu" examine=nil
| 2 <- imap-current-mailbox-p-1: t
1 <- imap-current-mailbox-p: t
======================================================================
1 -> imap-current-mailbox: buffer=" *nnimap* exchange-d01"
1 <- imap-current-mailbox: "INBOX/Development/gnu"
======================================================================
1 -> imap-mailbox-unselect: buffer=" *nnimap* exchange-d01"
| 2 -> imap-capability: identifier=UNSELECT buffer=nil
| 2 <- imap-capability: nil
| 2 -> imap-send-command-wait: command="EXAMINE \"INBOX/Development/gnu\"" buffer=nil
| | 3 -> imap-send-command: command="EXAMINE \"INBOX/Development/gnu\"" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="519 EXAMINE \"INBOX/Development/gnu\""
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 519
| | 3 -> imap-wait-for-tag: tag=519 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* 7 EXISTS
* 0 RECENT
* FLAGS (\\Seen \\Answered \\Flagged \\Deleted \\Draft $MDNSent)
* OK [PERMANENTFLAGS ()] Permanent flags
* OK [UNSEEN 6] Is the first unseen message
* OK [UIDVALIDITY 1257] UIDVALIDITY value
* OK [UIDNEXT 8] The next unique identifier value
519 OK [READ-ONLY] EXAMINE completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 13
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-mailbox-put: propname=exists value=7 mailbox=nil buffer=nil
| | | | | 6 <- imap-mailbox-put: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 13
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-mailbox-put: propname=recent value=0 mailbox=nil buffer=nil
| | | | | 6 <- imap-mailbox-put: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 62
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-flag-list: 
| | | | | 6 <- imap-parse-flag-list: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| | | | | 6 -> imap-mailbox-put: propname=flags value=("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent") mailbox=nil buffer=nil
| | | | | 6 <- imap-mailbox-put: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 43
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | | 8 -> imap-parse-flag-list: 
| | | | | | | 8 <- imap-parse-flag-list: nil
| | | | | | | 8 -> imap-mailbox-put: propname=permanentflags value=nil mailbox=nil buffer=nil
| | | | | | | 8 <- imap-mailbox-put: t
| | | | | | 7 <- imap-parse-resp-text-code: t
| | | | | 6 <- imap-parse-resp-text: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 46
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | | 8 -> imap-mailbox-put: propname=first-unseen value=6 mailbox=nil buffer=nil
| | | | | | | 8 <- imap-mailbox-put: t
| | | | | | 7 <- imap-parse-resp-text-code: t
| | | | | 6 <- imap-parse-resp-text: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 44
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | | 8 -> imap-mailbox-put: propname=uidvalidity value="1257" mailbox=nil buffer=nil
| | | | | | | 8 <- imap-mailbox-put: t
| | | | | | 7 <- imap-parse-resp-text-code: t
| | | | | 6 <- imap-parse-resp-text: t
| | | | 5 <- imap-parse-response: t
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 52
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 40
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | | 8 -> imap-mailbox-put: propname=read-only value=t mailbox=nil buffer=nil
| | | | | | | 8 <- imap-mailbox-put: t
| | | | | | 7 <- imap-parse-resp-text-code: t
| | | | | 6 <- imap-parse-resp-text: t
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
| 2 -> imap-send-command-wait: command="CLOSE" buffer=nil
| | 3 -> imap-send-command: command="CLOSE" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="520 CLOSE"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 520
| | 3 -> imap-wait-for-tag: tag=520 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="520 OK CLOSE completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 26
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-mailbox-unselect: t
======================================================================
1 -> imap-current-mailbox: buffer=nil
1 <- imap-current-mailbox: nil
======================================================================
1 -> imap-mailbox-select: mailbox="INBOX/Development/gnu" examine=t buffer=nil
| 2 -> imap-mailbox-select-1: mailbox="INBOX/Development/gnu" examine=t
| | 3 -> imap-current-mailbox-p-1: mailbox="INBOX/Development/gnu" examine=t
| | 3 <- imap-current-mailbox-p-1: nil
| | 3 -> imap-send-command-wait: command="EXAMINE \"INBOX/Development/gnu\"" buffer=nil
| | | 4 -> imap-send-command: command="EXAMINE \"INBOX/Development/gnu\"" buffer=nil
| | | | 5 -> imap-send-command-1: cmdstr="521 EXAMINE \"INBOX/Development/gnu\""
| | | | 5 <- imap-send-command-1: nil
| | | 4 <- imap-send-command: 521
| | | 4 -> imap-wait-for-tag: tag=521 buffer=nil
| | | | 5 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* 7 EXISTS
* 0 RECENT
* FLAGS (\\Seen \\Answered \\Flagged \\Deleted \\Draft $MDNSent)
* OK [PERMANENTFLAGS ()] Permanent flags
* OK [UNSEEN 6] Is the first unseen message
* OK [UIDVALIDITY 1257] UIDVALIDITY value
* OK [UIDNEXT 8] The next unique identifier value
521 OK [READ-ONLY] EXAMINE completed.
"
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 13
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-mailbox-put: propname=exists value=7 mailbox=nil buffer=nil
| | | | | | 7 <- imap-mailbox-put: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 13
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-mailbox-put: propname=recent value=0 mailbox=nil buffer=nil
| | | | | | 7 <- imap-mailbox-put: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 62
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-flag-list: 
| | | | | | 7 <- imap-parse-flag-list: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| | | | | | 7 -> imap-mailbox-put: propname=flags value=("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent") mailbox=nil buffer=nil
| | | | | | 7 <- imap-mailbox-put: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 43
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | | 9 -> imap-parse-flag-list: 
| | | | | | | | 9 <- imap-parse-flag-list: nil
| | | | | | | | 9 -> imap-mailbox-put: propname=permanentflags value=nil mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-resp-text-code: t
| | | | | | 7 <- imap-parse-resp-text: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 46
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | | 9 -> imap-mailbox-put: propname=first-unseen value=6 mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-resp-text-code: t
| | | | | | 7 <- imap-parse-resp-text: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 44
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | | 9 -> imap-mailbox-put: propname=uidvalidity value="1257" mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-resp-text-code: t
| | | | | | 7 <- imap-parse-resp-text: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 52
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | 8 <- imap-parse-resp-text-code: nil
| | | | | | 7 <- imap-parse-resp-text: nil
| | | | | 6 <- imap-parse-response: nil
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 40
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | | 9 -> imap-mailbox-put: propname=read-only value=t mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-resp-text-code: t
| | | | | | 7 <- imap-parse-resp-text: t
| | | | | 6 <- imap-parse-response: nil
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: nil
| | | | 5 <- imap-arrival-filter: nil
| | | 4 <- imap-wait-for-tag: OK
| | 3 <- imap-send-command-wait: OK
| 2 <- imap-mailbox-select-1: "INBOX/Development/gnu"
1 <- imap-mailbox-select: "INBOX/Development/gnu"
======================================================================
1 -> imap-mailbox-get: propname=exists mailbox=nil buffer=nil
1 <- imap-mailbox-get: 7
======================================================================
1 -> imap-fetch: uids="1:*" props="UID" receive=nil nouidfetch=nouidfetch buffer=nil
| 2 -> imap-send-command-wait: command="FETCH 1:* UID" buffer=nil
| | 3 -> imap-send-command: command="FETCH 1:* UID" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="522 FETCH 1:* UID"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 522
| | 3 -> imap-wait-for-tag: tag=522 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* 1 FETCH (UID 1)
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 20
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-fetch: response=1
| | | | | | 7 -> imap-message-put: uid=1 propname=UID value=1 buffer=nil
| | | | | | 7 <- imap-message-put: t
| | | | | 6 <- imap-parse-fetch: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* 2 FETCH (UID 2)
* 3 FETCH (UID 3)
* 4 FETCH (UID 4)
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 20
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-fetch: response=2
| | | | | | 7 -> imap-message-put: uid=2 propname=UID value=2 buffer=nil
| | | | | | 7 <- imap-message-put: t
| | | | | 6 <- imap-parse-fetch: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 20
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-fetch: response=3
| | | | | | 7 -> imap-message-put: uid=3 propname=UID value=3 buffer=nil
| | | | | | 7 <- imap-message-put: t
| | | | | 6 <- imap-parse-fetch: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 20
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-fetch: response=4
| | | | | | 7 -> imap-message-put: uid=4 propname=UID value=4 buffer=nil
| | | | | | 7 <- imap-message-put: t
| | | | | 6 <- imap-parse-fetch: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* 5 FETCH (UID 5)
* 6 FETCH (UID 6)
* 7 FETCH (UID 7)
522 OK FETCH completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 20
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-fetch: response=5
| | | | | | 7 -> imap-message-put: uid=5 propname=UID value=5 buffer=nil
| | | | | | 7 <- imap-message-put: t
| | | | | 6 <- imap-parse-fetch: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 20
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-fetch: response=6
| | | | | | 7 -> imap-message-put: uid=6 propname=UID value=6 buffer=nil
| | | | | | 7 <- imap-message-put: t
| | | | | 6 <- imap-parse-fetch: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 20
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-fetch: response=7
| | | | | | 7 -> imap-message-put: uid=7 propname=UID value=7 buffer=nil
| | | | | | 7 <- imap-message-put: t
| | | | | 6 <- imap-parse-fetch: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 26
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-fetch: t
======================================================================
1 -> imap-message-map: func=#<compiled-function (uid Uid) "...(22)" [maxuid minuid uid] 2> propname=UID buffer=nil
1 <- imap-message-map: (7 7 7 7 7 7 7)
======================================================================
1 -> imap-mailbox-get: propname=exists mailbox=nil buffer=nil
1 <- imap-mailbox-get: 7
======================================================================
1 -> imap-opened: buffer=nil
| 2 -> imap-send-command-wait: command="NOOP" buffer=nil
| | 3 -> imap-send-command: command="NOOP" buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="523 NOOP"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 523
| | 3 -> imap-wait-for-tag: tag=523 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="523 OK NOOP completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 25
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
1 <- imap-opened: t
======================================================================
1 -> imap-current-mailbox-p: mailbox="INBOX/Development/gnu" examine=nil buffer=nil
| 2 -> imap-current-mailbox-p-1: mailbox="INBOX/Development/gnu" examine=nil
| 2 <- imap-current-mailbox-p-1: nil
1 <- imap-current-mailbox-p: nil
======================================================================
1 -> imap-mailbox-select: mailbox="INBOX/Development/gnu" examine=nil buffer=nil
| 2 -> imap-mailbox-select-1: mailbox="INBOX/Development/gnu" examine=nil
| | 3 -> imap-current-mailbox-p-1: mailbox="INBOX/Development/gnu" examine=nil
| | 3 <- imap-current-mailbox-p-1: nil
| | 3 -> imap-send-command-wait: command="SELECT \"INBOX/Development/gnu\"" buffer=nil
| | | 4 -> imap-send-command: command="SELECT \"INBOX/Development/gnu\"" buffer=nil
| | | | 5 -> imap-send-command-1: cmdstr="524 SELECT \"INBOX/Development/gnu\""
| | | | 5 <- imap-send-command-1: nil
| | | 4 <- imap-send-command: 524
| | | 4 -> imap-wait-for-tag: tag=524 buffer=nil
| | | | 5 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* 7 EXISTS
* 0 RECENT
* FLAGS (\\Seen \\Answered \\Flagged \\Deleted \\Draft $MDNSent)
* OK [PERMANENTFLAGS (\\Seen \\Answered \\Flagged \\Deleted \\Draft $MDNSent)] Permanent flags
* OK [UNSEEN 6] Is the first unseen message
* OK [UIDVALIDITY 1257] UIDVALIDITY value
* OK [UIDNEXT 8] The next unique identifier value
524 OK [READ-WRITE] SELECT completed.
"
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 13
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-mailbox-put: propname=exists value=7 mailbox=nil buffer=nil
| | | | | | 7 <- imap-mailbox-put: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 13
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-mailbox-put: propname=recent value=0 mailbox=nil buffer=nil
| | | | | | 7 <- imap-mailbox-put: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 62
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-flag-list: 
| | | | | | 7 <- imap-parse-flag-list: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| | | | | | 7 -> imap-mailbox-put: propname=flags value=("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent") mailbox=nil buffer=nil
| | | | | | 7 <- imap-mailbox-put: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 92
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | | 9 -> imap-parse-flag-list: 
| | | | | | | | 9 <- imap-parse-flag-list: ("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent")
| | | | | | | | 9 -> imap-mailbox-put: propname=permanentflags value=("\\Seen" "\\Answered" "\\Flagged" "\\Deleted" "\\Draft" "$MDNSent") mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-resp-text-code: t
| | | | | | 7 <- imap-parse-resp-text: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 46
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | | 9 -> imap-mailbox-put: propname=first-unseen value=6 mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-resp-text-code: t
| | | | | | 7 <- imap-parse-resp-text: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 44
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | | 9 -> imap-mailbox-put: propname=uidvalidity value="1257" mailbox=nil buffer=nil
| | | | | | | | 9 <- imap-mailbox-put: t
| | | | | | | 8 <- imap-parse-resp-text-code: t
| | | | | | 7 <- imap-parse-resp-text: t
| | | | | 6 <- imap-parse-response: t
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 52
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | 8 <- imap-parse-resp-text-code: nil
| | | | | | 7 <- imap-parse-resp-text: nil
| | | | | 6 <- imap-parse-response: nil
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: 40
| | | | | 6 -> imap-parse-response: 
| | | | | | 7 -> imap-parse-resp-text: 
| | | | | | | 8 -> imap-parse-resp-text-code: 
| | | | | | | 8 <- imap-parse-resp-text-code: nil
| | | | | | 7 <- imap-parse-resp-text: nil
| | | | | 6 <- imap-parse-response: nil
| | | | | 6 -> imap-find-next-line: 
| | | | | 6 <- imap-find-next-line: nil
| | | | 5 <- imap-arrival-filter: nil
| | | 4 <- imap-wait-for-tag: OK
| | 3 <- imap-send-command-wait: OK
| 2 <- imap-mailbox-select-1: "INBOX/Development/gnu"
1 <- imap-mailbox-select: "INBOX/Development/gnu"
======================================================================
1 -> imap-mailbox-get: propname=uidvalidity mailbox=nil buffer=nil
1 <- imap-mailbox-get: "1257"
======================================================================
1 -> imap-mailbox-get: propname=exists mailbox="INBOX/Development/gnu" buffer=nil
1 <- imap-mailbox-get: 7
======================================================================
1 -> imap-mailbox-status: mailbox="INBOX/Development/gnu" items=unseen buffer=" *nnimap* exchange-d01"
| 2 -> imap-send-command-wait: command=("STATUS \"" "INBOX/Development/gnu" "\" " "(UNSEEN)") buffer=nil
| | 3 -> imap-send-command: command=("STATUS \"" "INBOX/Development/gnu" "\" " "(UNSEEN)") buffer=nil
| | | 4 -> imap-send-command-1: cmdstr="525 STATUS \"INBOX/Development/gnu\" (UNSEEN)"
| | | 4 <- imap-send-command-1: nil
| | 3 <- imap-send-command: 525
| | 3 -> imap-wait-for-tag: tag=525 buffer=nil
| | | 4 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="* STATUS INBOX/Development/gnu (UNSEEN 2) 
525 OK STATUS completed.
"
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 45
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-status: 
| | | | | | 7 -> imap-mailbox-put: propname=unseen value=2 mailbox="INBOX/Development/gnu" buffer=nil
| | | | | | 7 <- imap-mailbox-put: t
| | | | | 6 <- imap-parse-status: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: 27
| | | | 5 -> imap-parse-response: 
| | | | | 6 -> imap-parse-resp-text: 
| | | | | | 7 -> imap-parse-resp-text-code: 
| | | | | | 7 <- imap-parse-resp-text-code: nil
| | | | | 6 <- imap-parse-resp-text: nil
| | | | 5 <- imap-parse-response: nil
| | | | 5 -> imap-find-next-line: 
| | | | 5 <- imap-find-next-line: nil
| | | 4 <- imap-arrival-filter: nil
| | 3 <- imap-wait-for-tag: OK
| 2 <- imap-send-command-wait: OK
| 2 -> imap-mailbox-get: propname=unseen mailbox="INBOX/Development/gnu" buffer=nil
| 2 <- imap-mailbox-get: 2
1 <- imap-mailbox-status: 2
======================================================================
1 -> imap-mailbox-expunge: asynch=t buffer=nil
| 2 -> imap-send-command: command="EXPUNGE" buffer=nil
| | 3 -> imap-send-command-1: cmdstr="526 EXPUNGE"
| | 3 <- imap-send-command-1: nil
| 2 <- imap-send-command: 526
1 <- imap-mailbox-expunge: 526
======================================================================
1 -> imap-arrival-filter: proc=#<process "imap" pid 25358 state:run> string="526 OK EXPUNGE completed.
"
| 2 -> imap-find-next-line: 
| 2 <- imap-find-next-line: 28
| 2 -> imap-parse-response: 
| | 3 -> imap-parse-resp-text: 
| | | 4 -> imap-parse-resp-text-code: 
| | | 4 <- imap-parse-resp-text-code: nil
| | 3 <- imap-parse-resp-text: nil
| 2 <- imap-parse-response: nil
| 2 -> imap-find-next-line: 
| 2 <- imap-find-next-line: nil
1 <- imap-arrival-filter: nil

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-03-31 14:54 Exchange 2007 Issues When Copying Between Folders Jake Colman
@ 2008-03-31 18:50 ` Ted Zlatanov
  2008-04-01 14:06   ` Simon Josefsson
  0 siblings, 1 reply; 16+ messages in thread
From: Ted Zlatanov @ 2008-03-31 18:50 UTC (permalink / raw)
  To: Jake Colman; +Cc: Simon Josefsson, ding, Emacs developers

On Mon, 31 Mar 2008 10:54:12 -0400 Jake Colman <colman@ppllc.com> 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.

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.

Thanks
Ted




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-03-31 18:50 ` Ted Zlatanov
@ 2008-04-01 14:06   ` Simon Josefsson
  2008-04-01 14:13     ` Jake Colman
                       ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Simon Josefsson @ 2008-04-01 14:06 UTC (permalink / raw)
  To: Ted Zlatanov; +Cc: Jake Colman, ding, Emacs developers

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Mon, 31 Mar 2008 10:54:12 -0400 Jake Colman <colman@ppllc.com> 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




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 14:06   ` Simon Josefsson
@ 2008-04-01 14:13     ` Jake Colman
  2008-04-01 14:14     ` Jake Colman
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 16+ messages in thread
From: Jake Colman @ 2008-04-01 14:13 UTC (permalink / raw)
  To: Simon Josefsson; +Cc: Ted Zlatanov, ding, Emacs developers

>>>>> "SJ" == Simon Josefsson <simon@josefsson.org> writes:

   SJ> Ted Zlatanov <tzz@lifelogs.com> writes:
   >> On Mon, 31 Mar 2008 10:54:12 -0400 Jake Colman <colman@ppllc.com> 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
   SJ> messages:
   >> 
   JC> Registry: Registering article 6 with group
   SJ> nnimap+exchange-d01:INBOX/Development/gnu
   JC> Registry: Registering article 7 with group
   SJ> 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
   SJ> 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
   SJ> 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.

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

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

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

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

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

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

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

   SJ> This is how the output should look like:

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

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

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


Simon,

Can you suggest something better to fix this problem?  I'm sure that I'm
not the only user who will want to use Gnus with Exchange 2007.  This
fix, incorrect though it may be, does work.  Is there something other
IMAP command that will get data in the way Gnus needs to see it?

...Jake

-- 
Jake Colman
Director of Software Development
Principia Partners LLC
101 West Elm Street
Suite 620
Conshohocken, PA  19428
+1 (610) 755-9786
www.principiapartners.com



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 14:06   ` Simon Josefsson
  2008-04-01 14:13     ` Jake Colman
@ 2008-04-01 14:14     ` Jake Colman
  2008-04-01 14:21       ` Simon Josefsson
  2008-04-01 22:00     ` Gaute Strokkenes
  2008-04-02 14:19     ` Ted Zlatanov
  3 siblings, 1 reply; 16+ messages in thread
From: Jake Colman @ 2008-04-01 14:14 UTC (permalink / raw)
  To: Simon Josefsson; +Cc: Ted Zlatanov, ding, Emacs developers

>>>>> "SJ" == Simon Josefsson <simon@josefsson.org> writes:

   SJ> Ted Zlatanov <tzz@lifelogs.com> writes:
   >> On Mon, 31 Mar 2008 10:54:12 -0400 Jake Colman <colman@ppllc.com> 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
   SJ> messages:
   >> 
   JC> Registry: Registering article 6 with group
   SJ> nnimap+exchange-d01:INBOX/Development/gnu
   JC> Registry: Registering article 7 with group
   SJ> 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
   SJ> 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
   SJ> 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.

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

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

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

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

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

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

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

   SJ> This is how the output should look like:

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

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

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


Simon,

Can you suggest something better to fix this problem?  I'm sure that I'm
not the only user who will want to use Gnus with Exchange 2007.  This
fix, incorrect though it may be, does work.  Is there something other
IMAP command that will get data in the way Gnus needs to see it?

...Jake

-- 
Jake Colman
Director of Software Development
Principia Partners LLC
101 West Elm Street
Suite 620
Conshohocken, PA  19428
+1 (610) 755-9786
www.principiapartners.com




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 14:14     ` Jake Colman
@ 2008-04-01 14:21       ` Simon Josefsson
  2008-04-01 14:29         ` Simon Josefsson
  0 siblings, 1 reply; 16+ messages in thread
From: Simon Josefsson @ 2008-04-01 14:21 UTC (permalink / raw)
  To: Jake Colman; +Cc: Ted Zlatanov, ding, Emacs developers

Jake Colman <colman@ppllc.com> writes:

> Simon,
>
> Can you suggest something better to fix this problem?  I'm sure that I'm
> not the only user who will want to use Gnus with Exchange 2007.  This
> fix, incorrect though it may be, does work.  Is there something other
> IMAP command that will get data in the way Gnus needs to see it?

Does the fix work?  In another post you said it didn't help.

We can introduce a variable nnimap-enable-exchange-bug-workaround that
toggles the way the code works.  You can set that variable, if it indeed
solves your problem, and others can leave it at its disabled default
value.

Note that using the 1:* command over the 1,* command will generate
excessive traffic.  (For me, checking new mail jumped from a few kb's to
>10MB.)

/Simon



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 14:21       ` Simon Josefsson
@ 2008-04-01 14:29         ` Simon Josefsson
  2008-04-01 14:34           ` Jake Colman
  0 siblings, 1 reply; 16+ messages in thread
From: Simon Josefsson @ 2008-04-01 14:29 UTC (permalink / raw)
  To: Jake Colman; +Cc: Ted Zlatanov, ding, Emacs developers

Simon Josefsson <simon@josefsson.org> writes:

> Jake Colman <colman@ppllc.com> writes:
>
>> Simon,
>>
>> Can you suggest something better to fix this problem?  I'm sure that I'm
>> not the only user who will want to use Gnus with Exchange 2007.  This
>> fix, incorrect though it may be, does work.  Is there something other
>> IMAP command that will get data in the way Gnus needs to see it?
>
> Does the fix work?  In another post you said it didn't help.
>
> We can introduce a variable nnimap-enable-exchange-bug-workaround that
> toggles the way the code works.  You can set that variable, if it indeed
> solves your problem, and others can leave it at its disabled default
> value.

Here is what I propose, if 1:* really solves the problem.  Please test
it, apply the patch and customize nnimap-enable-minmax-bug-workaround to
a non-nil value.

/Simon

--- nnimap.el	01 Apr 2008 16:03:24 +0200	7.44
+++ nnimap.el	01 Apr 2008 16:27:27 +0200	
@@ -219,6 +219,19 @@
 
 ;; Performance / bug workaround variables
 
+(defcustom nnimap-enable-minmax-bug-workaround nil
+  "Send UID FETCH UID commands as 1:* instead of 1,*.
+Enabling this appears to be required for some servers (e.g.,
+Exchange) which otherwise would trigger a response 'BAD The
+specified message set is invalid.'.
+Note that enabling this work around may cause significant
+performance penalties if you have large mailboxes.  It makes the
+code transfer one line of data for each message in a
+mailbox (i.e., O(n)) compared to transfering only two
+lines (i.e., O(1))."
+  :type 'boolean
+  :group 'nnimap)
+
 (defcustom nnimap-close-asynchronous t
   "Close mailboxes asynchronously in `nnimap-close-group'.
 This means that errors caught by nnimap when closing the mailbox will
@@ -555,7 +568,8 @@
 	      (imap-mailbox-select group examine))
       (let (minuid maxuid)
 	(when (> (imap-mailbox-get 'exists) 0)
-	  (imap-fetch "1,*" "UID" nil 'nouidfetch)
+	  (imap-fetch (if nnimap-enable-minmax-bug-workaround "1:*" "1,*")
+		      "UID" nil 'nouidfetch)
 	  (imap-message-map (lambda (uid Uid)
 			      (setq minuid (if minuid (min minuid uid) uid)
 				    maxuid (if maxuid (max maxuid uid) uid)))




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 14:29         ` Simon Josefsson
@ 2008-04-01 14:34           ` Jake Colman
  2008-04-01 14:49             ` Simon Josefsson
  0 siblings, 1 reply; 16+ messages in thread
From: Jake Colman @ 2008-04-01 14:34 UTC (permalink / raw)
  To: Simon Josefsson; +Cc: Ted Zlatanov, ding, Emacs developers

>>>>> "SJ" == Simon Josefsson <simon@josefsson.org> writes:

   SJ> Simon Josefsson <simon@josefsson.org> writes:
   >> Jake Colman <colman@ppllc.com> writes:
   >> 
   >>> Simon,
   >>> 
   >>> Can you suggest something better to fix this problem?  I'm sure that I'm
   >>> not the only user who will want to use Gnus with Exchange 2007.  This
   >>> fix, incorrect though it may be, does work.  Is there something other
   >>> IMAP command that will get data in the way Gnus needs to see it?
   >> 
   >> Does the fix work?  In another post you said it didn't help.
   >> 
   >> We can introduce a variable nnimap-enable-exchange-bug-workaround that
   >> toggles the way the code works.  You can set that variable, if it indeed
   >> solves your problem, and others can leave it at its disabled default
   >> value.

   SJ> Here is what I propose, if 1:* really solves the problem.  Please test
   SJ> it, apply the patch and customize nnimap-enable-minmax-bug-workaround to
   SJ> a non-nil value.

Simon,

I probably thought it wasn't working because of the performance issue
sue to the amount of data being transferred.  Yes, the bug fix _does_
work and I _am_ able get data from my Exchange server.  Unfortunately,
it is quite slow and, has some other bugs with moving  email betweeen
folders.

...Jake

-- 
Jake Colman
Director of Software Development
Principia Partners LLC
101 West Elm Street
Suite 620
Conshohocken, PA  19428
+1 (610) 755-9786
www.principiapartners.com



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 14:34           ` Jake Colman
@ 2008-04-01 14:49             ` Simon Josefsson
  2008-04-02 14:22               ` Ted Zlatanov
  0 siblings, 1 reply; 16+ messages in thread
From: Simon Josefsson @ 2008-04-01 14:49 UTC (permalink / raw)
  To: Jake Colman; +Cc: Ted Zlatanov, ding, Emacs developers

Jake Colman <colman@ppllc.com> writes:

>>>>>> "SJ" == Simon Josefsson <simon@josefsson.org> writes:
>
>    SJ> Simon Josefsson <simon@josefsson.org> writes:
>    >> Jake Colman <colman@ppllc.com> writes:
>    >> 
>    >>> Simon,
>    >>> 
>    >>> Can you suggest something better to fix this problem?  I'm sure that I'm
>    >>> not the only user who will want to use Gnus with Exchange 2007.  This
>    >>> fix, incorrect though it may be, does work.  Is there something other
>    >>> IMAP command that will get data in the way Gnus needs to see it?
>    >> 
>    >> Does the fix work?  In another post you said it didn't help.
>    >> 
>    >> We can introduce a variable nnimap-enable-exchange-bug-workaround that
>    >> toggles the way the code works.  You can set that variable, if it indeed
>    >> solves your problem, and others can leave it at its disabled default
>    >> value.
>
>    SJ> Here is what I propose, if 1:* really solves the problem.  Please test
>    SJ> it, apply the patch and customize nnimap-enable-minmax-bug-workaround to
>    SJ> a non-nil value.
>
> Simon,
>
> I probably thought it wasn't working because of the performance issue
> sue to the amount of data being transferred.  Yes, the bug fix _does_
> work and I _am_ able get data from my Exchange server.  Unfortunately,
> it is quite slow and, has some other bugs with moving  email betweeen
> folders.

Ok, I have installed my proposed patch in gnus cvs.

You need to customize and enable nnimap-enable-minmax-bug-workaround to
use the slow behavior.

/Simon




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 14:06   ` Simon Josefsson
  2008-04-01 14:13     ` Jake Colman
  2008-04-01 14:14     ` Jake Colman
@ 2008-04-01 22:00     ` Gaute Strokkenes
  2008-04-01 22:08       ` Simon Josefsson
  2008-04-02 14:19     ` Ted Zlatanov
  3 siblings, 1 reply; 16+ messages in thread
From: Gaute Strokkenes @ 2008-04-01 22:00 UTC (permalink / raw)
  To: Simon Josefsson; +Cc: Ted Zlatanov, Jake Colman, ding, Emacs developers

On  1 april 2008, simon@josefsson.org wrote:

[snip]
> 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 I understand correctly, what this command is intended to do is to
retrieve the UID of the last and first messags in the mailbox.  If so,
would it not be possible to use a pair of FETCH commands instead?

-- 
Gaute Strokkenes



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 22:00     ` Gaute Strokkenes
@ 2008-04-01 22:08       ` Simon Josefsson
  0 siblings, 0 replies; 16+ messages in thread
From: Simon Josefsson @ 2008-04-01 22:08 UTC (permalink / raw)
  To: Ted Zlatanov; +Cc: Jake Colman, ding, Emacs developers

Gaute Strokkenes <gs234@srcf.ucam.org> writes:

> On  1 april 2008, simon@josefsson.org wrote:
>
> [snip]
>> 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 I understand correctly, what this command is intended to do is to
> retrieve the UID of the last and first messags in the mailbox.

Yes.

> If so, would it not be possible to use a pair of FETCH commands
> instead?

Perhaps, those with exchange servers could test this.  The patch would
then be.  Jake, does this patch (against latest CVS) also work for you?
If it works, it should definitely be faster than 1:* queries.

--- nnimap.el	01 Apr 2008 16:27:27 +0200	7.45
+++ nnimap.el	02 Apr 2008 00:07:39 +0200	
@@ -568,8 +568,10 @@
 	      (imap-mailbox-select group examine))
       (let (minuid maxuid)
 	(when (> (imap-mailbox-get 'exists) 0)
-	  (imap-fetch (if nnimap-enable-minmax-bug-workaround "1:*" "1,*")
-		      "UID" nil 'nouidfetch)
+	  (if (not nnimap-enable-minmax-bug-workaround)
+	      (imap-fetch "1,*" "UID" nil 'nouidfetch)
+	    (imap-fetch "1" "UID" nil 'nouidfetch)
+	    (imap-fetch "*" "UID" nil 'nouidfetch))
 	  (imap-message-map (lambda (uid Uid)
 			      (setq minuid (if minuid (min minuid uid) uid)
 				    maxuid (if maxuid (max maxuid uid) uid)))

/Simon



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 14:06   ` Simon Josefsson
                       ` (2 preceding siblings ...)
  2008-04-01 22:00     ` Gaute Strokkenes
@ 2008-04-02 14:19     ` Ted Zlatanov
  2008-04-02 14:33       ` Simon Josefsson
  3 siblings, 1 reply; 16+ messages in thread
From: Ted Zlatanov @ 2008-04-02 14:19 UTC (permalink / raw)
  To: Simon Josefsson; +Cc: ding, Emacs developers

On Tue, 01 Apr 2008 16:06:41 +0200 Simon Josefsson <simon@josefsson.org> wrote: 

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

Understood.

> Ted Z wrote:
>> 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.

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

OK, I will try that.  I can take over imap.el and nnimap.el if no one
else wants to do it and Simon is OK with it, though I'm no IMAP expert.

Ted




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-01 14:49             ` Simon Josefsson
@ 2008-04-02 14:22               ` Ted Zlatanov
  2008-04-02 14:35                 ` Simon Josefsson
  0 siblings, 1 reply; 16+ messages in thread
From: Ted Zlatanov @ 2008-04-02 14:22 UTC (permalink / raw)
  To: Simon Josefsson; +Cc: Jake Colman, ding

On Tue, 01 Apr 2008 16:49:04 +0200 Simon Josefsson <simon@josefsson.org> wrote: 

SJ> You need to customize and enable nnimap-enable-minmax-bug-workaround
SJ> to use the slow behavior.

How about disabling imap-debug while that fetch is happening, if the
workaround is enabled?  Otherwise, the imap-debug buffer gets too big
very quickly, exceeding the max buffer size.  I don't think imap-log has
the same problem (as quickly, anyhow) but it may be wise to curb it as
well.

Ted



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-02 14:19     ` Ted Zlatanov
@ 2008-04-02 14:33       ` Simon Josefsson
  2008-04-03 13:09         ` Ted Zlatanov
  0 siblings, 1 reply; 16+ messages in thread
From: Simon Josefsson @ 2008-04-02 14:33 UTC (permalink / raw)
  To: Ted Zlatanov; +Cc: ding, Emacs developers

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Tue, 01 Apr 2008 16:06:41 +0200 Simon Josefsson <simon@josefsson.org> wrote: 
>
> SJ> Hi!  Sorry for not responding, I have been busy with other things,
> SJ> and I don't have much time to work on (nn)imap.el any more.  I have
> SJ> time to review concrete patches, but little time to help debug
> SJ> problems with some servers.
>
> Understood.
>
>> Ted Z wrote:
>>> 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.
>
> SJ> I'm not aware of any, and I would agree that the RFC is unfriendly...
> SJ> if you can't find any primer, just toggle imap-log and try to understand
> SJ> the commands send by Gnus for each operation that is needed.  Read the
> SJ> RFC for full explanations of some things.
>
> OK, I will try that.  I can take over imap.el and nnimap.el if no one
> else wants to do it and Simon is OK with it, though I'm no IMAP expert.

Perhaps we can co-maintain it, I'm still around for reviewing any
patches although I usually do not have time to help debug user problems.

/Simon




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-02 14:22               ` Ted Zlatanov
@ 2008-04-02 14:35                 ` Simon Josefsson
  0 siblings, 0 replies; 16+ messages in thread
From: Simon Josefsson @ 2008-04-02 14:35 UTC (permalink / raw)
  To: Ted Zlatanov; +Cc: Jake Colman, ding

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Tue, 01 Apr 2008 16:49:04 +0200 Simon Josefsson <simon@josefsson.org> wrote: 
>
> SJ> You need to customize and enable nnimap-enable-minmax-bug-workaround
> SJ> to use the slow behavior.
>
> How about disabling imap-debug while that fetch is happening, if the
> workaround is enabled?  Otherwise, the imap-debug buffer gets too big
> very quickly, exceeding the max buffer size.  I don't think imap-log has
> the same problem (as quickly, anyhow) but it may be wise to curb it as
> well.

It seems we can avoid the excessive bandwidth usage by either using the
1,*:* approach or separating the fetch into one 1-fetch and one *-fetch.
So I don't think we need to do that.

/Simon



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Exchange 2007 Issues When Copying Between Folders
  2008-04-02 14:33       ` Simon Josefsson
@ 2008-04-03 13:09         ` Ted Zlatanov
  0 siblings, 0 replies; 16+ messages in thread
From: Ted Zlatanov @ 2008-04-03 13:09 UTC (permalink / raw)
  To: ding; +Cc: Emacs developers

On Wed, 02 Apr 2008 16:33:54 +0200 Simon Josefsson <simon@josefsson.org> wrote: 

SJ> Ted Zlatanov <tzz@lifelogs.com> writes:
>> OK, I will try that.  I can take over imap.el and nnimap.el if no one
>> else wants to do it and Simon is OK with it, though I'm no IMAP expert.

SJ> Perhaps we can co-maintain it, I'm still around for reviewing any
SJ> patches although I usually do not have time to help debug user problems.

Sounds good.  You provide the knowledge, I'll do the grunt work.  Please
note it (in any way you like) in the *imap.el files so users know.

Ted




^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2008-04-03 13:09 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-31 14:54 Exchange 2007 Issues When Copying Between Folders Jake Colman
2008-03-31 18:50 ` Ted Zlatanov
2008-04-01 14:06   ` Simon Josefsson
2008-04-01 14:13     ` Jake Colman
2008-04-01 14:14     ` Jake Colman
2008-04-01 14:21       ` Simon Josefsson
2008-04-01 14:29         ` Simon Josefsson
2008-04-01 14:34           ` Jake Colman
2008-04-01 14:49             ` Simon Josefsson
2008-04-02 14:22               ` Ted Zlatanov
2008-04-02 14:35                 ` Simon Josefsson
2008-04-01 22:00     ` Gaute Strokkenes
2008-04-01 22:08       ` Simon Josefsson
2008-04-02 14:19     ` Ted Zlatanov
2008-04-02 14:33       ` Simon Josefsson
2008-04-03 13:09         ` Ted Zlatanov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).