Normally, when mail is read, a POP3 server will set the Status: RO
header in the message. This is so I can use `xfaces' :-).
In fact, the courier-pop server shows messages as being present and no
different to when they are new, even though they are deleted via IMAP.
You need to "purge deleted messages" to get rid of them.
Maybe a nice quick hack would be something like this:
--- pop3dserver.c.orig 2004-07-26 14:39:48.000000000 +1200
+++ pop3dserver.c 2004-07-26 14:42:27.000000000 +1200
@@ -651,7 +651,13 @@
{
if (inheader)
{
- if (c == '\n') inheader=0;
+ if (c == '\n')
+ {
+ if ((p=strchr(msglist_a[i]->filename, MDIRSEP[0])) != 0 &&
+ (p[1] != '2' || p[2] != ',' || strchr(p, 'S') != 0))
+ puts("Status: RO\r");
+ inheader=0;
+ }
}
else if ( (*lptr)-- == 0) break;
}
I found this on http://www.expita.com/header1.html, if anyone feels
inspired to implement this feature more completely: | >-
Status: Status is a non-standard RFC2822 message header added by
Eudora and other e-mail clients after message delivery to indicate
the status of delivery for this message when stored. Common values
of this field are:
* U message is not downloaded and not deleted.
* R message is read or downloaded.
* O message is old but not deleted.
* D to be deleted.
* N new (a new message also sometimes is distinguished by not
having any "Status:" header)
Combinations of these characters can occur, such as "Status: RO" to
indicate that a message is downloaded but not deleted.
...
The Status: header is understood by an awful lot of existing programs
out there.