[Dovecot] Marking as Read causes Body.Peek on ALL messages - Reasonable?

Daniel Watts d at nielwatts.com
Wed Aug 13 19:12:54 EEST 2008


I've noticed when I select a folder of messages (Thunderbird) and mark 
them all as read (or unread) it produces the following IMAP transcript:

Source	Destination	Info
c.c.c.c	s.s.s.s	Request: DONE
s.s.s.s	c.c.c.c	Response: 20 OK Idle completed.
c.c.c.c	s.s.s.s	Request: 21 uid store 1:20 -Flags (\Seen)
s.s.s.s	c.c.c.c	Response: * 1 FETCH (UID 1 FLAGS (\Recent NonJunk))
c.c.c.c	s.s.s.s	Request: 22 UID fetch 2 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 2 FETCH (UID 2 RFC822.SIZE 1339 BODY[] {1339}
c.c.c.c	s.s.s.s	Request: 23 UID fetch 3 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 3 FETCH (UID 3 RFC822.SIZE 1342 BODY[] {1342}
c.c.c.c	s.s.s.s	Request: 24 UID fetch 5 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 5 FETCH (UID 5 RFC822.SIZE 1344 BODY[] {1344}
c.c.c.c	s.s.s.s	Request: 25 UID fetch 6 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 6 FETCH (UID 6 RFC822.SIZE 1350 BODY[] {1350}
c.c.c.c	s.s.s.s	Request: 26 UID fetch 7 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 7 FETCH (UID 7 RFC822.SIZE 1344 BODY[] {1344}
c.c.c.c	s.s.s.s	Request: 27 UID fetch 8 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 8 FETCH (UID 8 RFC822.SIZE 1325 BODY[] {1325}
c.c.c.c	s.s.s.s	Request: 28 UID fetch 9 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 9 FETCH (UID 9 RFC822.SIZE 1323 BODY[] {1323}
c.c.c.c	s.s.s.s	Request: 29 UID fetch 10 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 10 FETCH (UID 10 RFC822.SIZE 1338 BODY[] {1338}
c.c.c.c	s.s.s.s	Request: 30 UID fetch 11 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 11 FETCH (UID 11 RFC822.SIZE 1333 BODY[] {1333}
c.c.c.c	s.s.s.s	Request: 31 UID fetch 12 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 12 FETCH (UID 12 RFC822.SIZE 1344 BODY[] {1344}
c.c.c.c	s.s.s.s	Request: 32 UID fetch 13 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 13 FETCH (UID 13 RFC822.SIZE 1335 BODY[] {1335}
c.c.c.c	s.s.s.s	Request: 33 UID fetch 15 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 15 FETCH (UID 15 RFC822.SIZE 1323 BODY[] {1323}
c.c.c.c	s.s.s.s	Request: 34 UID fetch 16 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 16 FETCH (UID 16 RFC822.SIZE 1325 BODY[] {1325}
c.c.c.c	s.s.s.s	Request: 35 UID fetch 17 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 17 FETCH (UID 17 RFC822.SIZE 1333 BODY[] {1333}
c.c.c.c	s.s.s.s	Request: 36 UID fetch 18 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 18 FETCH (UID 18 RFC822.SIZE 1327 BODY[] {1327}
c.c.c.c	s.s.s.s	Request: 37 UID fetch 19 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 19 FETCH (UID 19 RFC822.SIZE 1343 BODY[] {1343}
c.c.c.c	s.s.s.s	Request: 38 UID fetch 20 (UID RFC822.SIZE BODY.PEEK[])
s.s.s.s	c.c.c.c	Response: * 20 FETCH (UID 20 RFC822.SIZE 1337 BODY[] {1337}
c.c.c.c	s.s.s.s	Request: 39 IDLE
s.s.s.s	c.c.c.c	Response: + idling

NOTE:
c.c.c.c = client (thunderbird)
s.s.s.s = server (dovecot 1.1.2)

Is this reasonable? I thought it would be possible to just send a list 
of message UIDs and say mark these as /seen /unseen etc.

Of course this could (is probably) just Thunderbird being braindead but 
confirmation would be appreciated.

Thanks,
Daniel



More information about the dovecot mailing list