作者:jeru 主页:http:// 发布方式:转载
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.
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.
Folder:提取、備份、附加與刪除訊息的方法
Store:保存資料夾與包含在資料夾中的訊息
Session:使用者驗證
谢谢,可是我朋友那里用的是POP3 server
说什么邮件是“只读”的
有没有什么解决方法呀
请看这里最后的一句话
You can also expunge() the Folder. However, the POP3 server from Sun does not support this operation.
用 Folder.close(true); 就可以删除了
我让我朋友继续试试
如果还有不懂的地方再继续向您请教
结贴