A KDE Tool to Manage and Read E-Mail
KShowmail Shows Potential -- But It Can Delete the Wrong Messages
Mike Angelo -- 6 December 2003 (C) -- Page 2
Other scenarios that can result in the KShowmail list and the POP3 server account list being out of sync are where the POP3 account is accessed by another user and/or with a different e-mail client.
For example, suppose several users have access to the same e-mail account. Then, while User 1 is managing e-mail with KShowmail User 2 deletes some messages in the shared POP3 account -- between the time User 1 refreshes the KShowmail list and the time User1 uses KShowmail to delete some e-mail messages in the shared POP3 server account.
That throws the KShowmail list and the POP3 account list out of sync. Then when User 1 hits the KShowmail delete command, KShowmail might delete the wrong message(s) in the shared POP3 account.
If you are knowledgeable about networking you likely are thinking that KShowmail would have the POP3 server account locked. It does not keep the POP3 account locked between the time KShowmail downloads the message list and the time it deletes messages in the POP3 account. Thus another user or e-mail client can access the POP3 account in between KShowmail operations.
If you are familiar with the classic Unix/Linux e-mail client PINE (Program for Internet News & Email), you likely know that PINE closes the mailbox if another user or program accesses the mailbox while you have it opened in PINE. This protects PINE from this sort of message list/index synchronization problem. (There also is a MS Windows version of PINE, PC-Pine.)
UIDL vs Message Position Indexing
Part of the underlying problem here is that the e-mail index/list numbers are not unique numbers for specific messages. Rather they are arbitrary and change as the position of messages in the list change. KShowmail uses the message index/list number to delete messages in the POP3 server account.
There is an identification string that is unique to each e-mail message and is always the same for each message, the UIDL (Unique ID Listing) string. Here is the definition of UIDL from FOLDOC (Free On-Line Dictionary of Computing)
During our discussions with Eggert Ehmke, we asked him if he could use the UIDL string instead of the index/list number to delete messages.
Eggert Ehmke: My interpretation [of RFC 1725] is that UIDL cannot be used as argument for message deletion. While a UIDL *is* unique to a message and will not change when a message is deleted, it cannot be used itself for deletion. I agree that this would solve this problem in a simple way.
While testing KShowmail, we also found a bug where sorting the message by file size of the message does not work correctly. However, Eggert Ehmke said that feature works okay in his production version of KShowmail. In any event, the sorting by size bug is not a showstopper.
Unfortunately, KShowmail can delete the wrong messages from a POP3 server account. That's a showstopper insofar as using KShowmail to delete messages. The good news is that KShowmail author Eggert Ehmke hopes to have that bug fixed shortly.
It would be nice to see the POP3 RFC (RFC 1725) updated to allow using UIDL to delete messages. In the long run, it seems that using UIDL strings rather than message list/index position numbers to delete messages is the better way to go.
Products and Items Mentioned in Article
Related and Other Interesting Articles
Is Netscape Losing the Browser Wars?