A mi juicio es el cliente quien debe borrarlos.
Aquí te dejo un ejemplo que utilizo para borrar.
Código Delphi
[-]
procedure TFormPOP3.DeleteMails(msgnums : array of integer);
Var I : Integer;
begin
if FBussy then exit;
FBussy := True;
try
Screen.Cursor := crHourGlass;
Application.ProcessMessages;
with POP3 do
Begin
if Connected then Disconnect;
Connect(10000);
for i := Low(msgnums) to High(msgnums) do
Delete(msgnums[i]);
End;
Finally
pop3.Disconnect;
FBussy := False;
End;
Yo particularmente dejo que sea el usuario quien realice este proceso, así me evito tener que guardar los mensajes leídos en ningún sitio, sino que permanecen en el servidor hasta que el usuario los borra.