在发送, 转发和接收电子邮件时, 我们也可以将其删除。 Message类的setFlag方法用于删除特定消息。
为了更好地理解此示例, 请首先学习使用JavaMail API发送电子邮件的步骤。 |
为了使用JavaMail API接收或发送电子邮件, 你需要加载两个jar文件:mail.jar activation.jar下载这些jar文件(或)到Oracle网站下载最新版本。 |
删除电子邮件共有5个步骤。他们是:
- 获取会话对象
- 创建存储对象并连接到当前主机
- 创建文件夹对象并打开它
- 获取要删除的消息
- 使用setFlag方法删除消息
import com.sun.mail.imap.protocol.FLAGS;
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class DeleteMail { public static void main(String args[]) throws Exception { String user= "sonoojaiswal@srcmini.com";
//change accordingly
String password="xxxxx";
//change accordingly //1) get the session object
Properties properties = System.getProperties();
Session session = Session.getDefaultInstance(properties);
//2) create the store object and connect to the current host
Store store = session.getStore("pop3");
store.connect("mail.srcmini.com", user, password);
//3) create the folder object and open it
Folder folder = store.getFolder("inbox");
if (!folder.exists()) {
System.out.println("inbox not found");
System.exit(0);
} folder.open(Folder.READ_WRITE);
//4) Get the message to delete
Message[] msg = folder.getMessages();
//System.out.println((messages.length+1)+" message found");
for (int i = 0;
i <
msg.length;
i++) {
System.out.println("--------- " + (i + 1) + "------------");
String from = InternetAddress.toString(msg[i].getFrom());
if (from != null) {
System.out.println("From: " + from);
}String replyTo = InternetAddress.toString(
msg[i].getReplyTo());
if (replyTo != null) {
System.out.println("Reply-to: " + replyTo);
}String to = InternetAddress.toString(
msg[i].getRecipients(Message.RecipientType.TO));
if (to != null) {
System.out.println("To: " + to);
}String subject = msg[i].getSubject();
if (subject != null) {
System.out.println("Subject: " + subject);
}
Date sent = msg[i].getSentDate();
if (sent != null) {
System.out.println("Sent: " + sent);
}
System.out.println("Message : ");
System.out.println(msg[i].getContent());
}//end of for loop// get the message number to delete (optional)
System.out.println("Enter message number to delete :");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String no = br.readLine();
//5) delete the message using setFlag method
msg[Integer.parseInt(no) - 1].setFlag(FLAGS.Flag.DELETED, true);
System.out.println("Message Deleted .....");
folder.close(true);
store.close();
}
}
【用Java删除电子邮件】如上例所示, 我们能够从用户邮箱中删除电子邮件。现在通过以下方式运行该程序:
加载jar文件 | c:\> set classpath = mail.jar; activation.jar; 。; |
编译源文件 | c:\> javac DeleteMail.java |
run by | c:\> Java DeleteMail |
推荐阅读
- 用Java转发电子邮件
- Applet中的事件处理
- change.exe指南(它是什么、用途、错误以及如何修复它())
- 如何在Windows和Mac上打开和播放.VOB文件(分步指南)
- 什么是CompatTelRunner.exe以及为什么它使用高磁盘/CPU()
- 什么是Arp.exe、用途以及如何修复错误()
- 什么是MSASCuil.exe(用途以及如何修复它?)
- Windows和Mac PC的14大Bluestack替代品(最佳模拟器合集)
- 什么是CCXProcess.exe以及如何禁用它(分步指南)