Herbert J. Skuhra wrote: >On Mon, 12 Jul 2010 10:05 -0400, "Per B. Sederberg" ><psederberg@gmail.com> wrote: >> >> In any case, this notification used to work and now it does not >> indicate new mail, even when I check in manually via the letter icon >> in my modeline. >I use WL with three IMAP servers: Gmail, Fastmail and work account. >The latter is running Exchange 2010 and only when I receive new e-mails >on this >account the letter.xpm appears in the modeline. On the other accounts >only the >counter is updated. >Gmail: Inbox:(0/0/672) => Inbox:(0/1/672) >Fastmail: Inbox:(0/0/338) => Inbox:(0/1/339) >Exchange 2010: Inbox:(0/0/2160) => Inbox:(1/1/2161) >No idea how to fix this. Interesting. I can reproduce this behavior and conclude that this caused by the outstanding bug: ,---- | * IMAP STATUS command MUST NOT be used as a "check for new messages in the | selected mailbox" operation (RFC3501) `---- Rationale: If there is just one mailbox in `wl-biff-check-folder-list', WL uses the method `elmo-folder-diff-async' to obtain information about new messages in the mailbox. This method does /not/ select the mailbox in question and performs a STATUS command to obtain information about the mailbox size. If there are more than one mailboxes in `wl-biff-check-folder-list', WL uses method `elmo-folder-diff' that ends up calling `elmo-imap4-folder-diff-plugged'. Somewhere between the call of the luna method (`elmo-folder-diff') and IMAP4 folder-diff-plugged the mailbox in question gets selected. Now WL calls STATUS on this mailbox (what is explictly "verboten" in the specs) and the server does /not/ return the actual mailbox size. Test case: I've sent a message via Google's web interface to my main mailbox while having both, gmail and the main inbox in `wl-biff-folder-check-list'. After some minutes I logged into the main account's IMAP server manually and checked Inbox: ,---- | ,* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. | 0x0 LOGIN XXXX "XXXXX" | 0x0 OK LOGIN Ok. | 0x1 STATUS Inbox | 0x1 NO Error in IMAP command received by server. | 0x2 STATUS Inbox (recent) | ,* STATUS "Inbox" (RECENT 1) | 0x2 OK STATUS Completed. | 0x3 LOGOUT | ,* BYE Courier-IMAP server shutting down | 0x3 OK LOGOUT completed | - Peer has closed the GNUTLS connection `---- Okay, 1 RECENT message. But for `wl-biff-check-folders' which calls STATUS on the selected mailbox I got: ,---- | [09:10:00] <- elmo-imap46 status Inbox (recent unseen messages uidnext) | [09:10:00] -> * STATUS "Inbox" (MESSAGES 6811 RECENT 0 UIDNEXT 8455 UNSEEN 10) | [09:10:00] -> elmo-imap46 OK STATUS Completed. | *elmo-imap46* OK arrived | [09:10:00] => ((ok nil) (status ((unseen 10) (uidnext 8455) (recent 0) (messages 6811)))) `---- So biff didn't report the message because the server didn't report new messages. And indeed: If I run a version of WL that claims this bug (calling STATUS on selected mailbox) to be fixed[1] the same test case succeeds: ,---- | [16:38:45] <- elmo-imap47 noop | [16:38:45] -> * 6833 EXISTS | [16:38:45] -> * 1 RECENT | [16:38:45] -> elmo-imap47 OK NOOP completed | *elmo-imap47* OK arrived | [16:38:45] => ((ok nil) (recent 1) (exists 6833)) | [16:38:45] -> mailbox size adjusted: Inbox, (6833 . 1) `---- So there's a good chance this one will be fixed if I am not entirely mistaken with my analysis. HTH, -- David [1] CVS branch elmo-imap4-compliance, or for Git users git://repo.or.cz/wanderlust.git -- OpenPGP... 0x99ADB83B5A4478E6 Jabber.... dmjena@jabber.org Email..... dmaus@ictsoc.de
Attachment:
pgpB5ffPxzQ42.pgp
Description: PGP signature