question how do you delete a message from the mail server?
derived from an unanswered question originally posed by benjamin alejandro rodriguez rengifo
topics java:api:javamail:imap4, java:api:javamail:pop3
author john zukowski
created 23-feb-00 modified 25-jul-00
answer
the basic process of deleting a message is to call setflag() on the message and set the flags.flag.deleted flag to true.
message.setflag(flags.flag.deleted, true);
then, when you close the folder, deleted messages will be removed.
be sure to open the folder for read/write access:
folder.open(folder.read_write);
the following program demonstrates listing each message in the folder and prompting for deletion:
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
public class deletemessageexample {
public static void main (string args[]) throws exception {
string host = args[0];
string username = args[1];
string password = args[2];
// get session
session session = session.getinstance(
system.getproperties(), null);
// get the store
store store = session.getstore("pop3");
store.connect(host, username, password);
// get folder
folder folder = store.getfolder("inbox");
folder.open(folder.read_write);
bufferedreader reader = new bufferedreader (
new inputstreamreader(system.in));
// get directory
message message[] = folder.getmessages();
for (int i=0, n=message.length; i<n; i++) {
system.out.println(i + ": " + message[i].getfrom()[0]
+ "\t" + message[i].getsubject());
system.out.println("do you want to delete message? [yes to delete]");
string line = reader.readline();
// mark as deleted if appropriate
if ("yes".equals(line)) {
message[i].setflag(flags.flag.deleted, true);
}
}
// close connection
folder.close(true);
store.close();
}
}
you can also expunge() the folder. however, the pop3 server from sun does not support this operation.