From: <egg...@be...> - 2003-12-08 10:22:42
|
Your points about UIDL's are right, but there are some "buts": 1. the bug report I wrote to document the objections of Mike had another background. Mike has a "very large" number of mail on his server, 5000+. He started to delete some, and later he deleted again without refreshing in the meantime. When you have short lists of messages, like normal, the numbering on the server and in kshowmail are synced again. I guess with his lots of messages, this might take some time, and he started deleting again when the numbering was out of sync. My solution that is contained in 3.1.0-pre1 is to block all user input as long as the reindexing in kshowmail is not ready. 2. It is right that the UIDL is unique and will not change when other messages are deleted. In fact the UIDL is already used during the normal refresh to make sure the local list is in sync whith the server list. So essancially, according to your proposals, we should do a full refresh before each delete action. This can be done, but involves some redesign. Comments? Eggert > The only way to delete an email from the POP3 server during a POP3 > session is using its sequential number not its UIDL number. While a > pop3 session is active those sequential numbers are used. If we delete > some emails and close the session and reestablish a new POP3 session, > emails left on the email server will be sequentially renumbered starting > with 1. But their UIDL will be the same. > So, kshowmail needs to use those sequential numbers but first, it has to > recheck the UIDL in order to see if there was a sequential number change > and then readjust its own sequential numbers. > Kshowmail will need to be sure that both, the sequential number and UIDL > are both the same on the POP server as well on its own list. ALL of > that MUST be done during the same POP3 session. > > Steps to delete and email must be: > > -Establish a new POP3 session after a kshowmail list is created dring > a previuos session. > - Get a new list of emails from the POP3 server. > - Compare both the kshowmail sequential number and UIDL with those on > the new list. If the sequential numbers differ, then update kshowmail > sequential numbers and get the new sequential number for the email to be > deleted according to its UIDL. Then proceed to delete email using its > new sequential number. > - Then close session and show updated list. > > That is why I think that kshowmail should generate its own sequential > email numbering, no matter what sequential number an email will have in > the pop3 server. Kshowmail must keep pop3 sequential numbers hidden. In > that way kshowmail does not have to alert the user that there was a > sequential number change for some reason. Then, if user wants to delete > email number 3 of kshowmail list. It is going to be number 3 on > kshowmail list, no matter what number now it has on the POP3 because a > new session HAD to be established. If new emails have arrived > meanwhile, they have to be assigned following kshowmail own sequential > numbers, but > kshowmail should be refreshed and possible it will be necessary to alert > the user that some emails were deleted from the server by another > application. > > Now I see the picture in a clear way. > > GZS -- Diese Mail wurde versendet durch www.berlin.de |