展开全部
JavaMail是提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。可以方e68a8462616964757a686964616f31333361323566便地执行一些常用的邮件传输。
如果需要使用JavaMail编程来实现删除QQ邮件服务器上的邮件,可以参考以下代码,在调用deleteMessages方法时,只需要传入邮件服务器地址、端口、邮箱登录用户名、登录密码以及需要删除的邮件主题五个参数即可:package com.what21.network.mail;
import java.util.Properties;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
public class EmailMessageRemover {
/**
* 删除主题中包含subjectToDelete字符串的所有邮件
*
* @param 邮箱服务器地址
* @param 邮箱服务器端口
* @param 登录用户名
* @param 登录密码
* @param 如果邮件主题包含这个字符串就会对其进行删除操作
*/
public void deleteMessages(String host, String port, String userName,
String password, String subjectToDelete) {
Properties properties = new Properties();
// 邮箱服务器配置
properties.put("mail.imap.host", host);
properties.put("mail.imap.port", port);
// SSL 连接配置
properties.setProperty("mail.imap.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.imap.socketFactory.fallback", "false");
properties.setProperty("mail.imap.socketFactory.port",
String.valueOf(port));
Session session = Session.getDefaultInstance(properties);
try {
// 连接邮箱服务器
Store store = session.getStore("imap");
store.connect(userName, password);
// 打开收件箱
Folder folderInbox = store.getFolder("INBOX");
folderInbox.open(Folder.READ_WRITE);
// 从服务器获取新邮件
Message[] arrayMessages = folderInbox.getMessages();
for (int i = 0; i
Message message = arrayMessages[i];
String subject = message.getSubject();
if (subject.contains(subjectToDelete)) {
//给需要删除的邮件打上标签
message.setFlag(Flags.Flag.DELETED, true);
System.out.println("Marked DELETE for message: " + subject);
}
}
// 删除指定的邮件
boolean expunge = true;
folderInbox.close(expunge);
// another way:
// folderInbox.expunge();
// folderInbox.close(false);
// 断开连接
store.close();
} catch (NoSuchProviderException ex) {
System.out.println("No provider.");
ex.printStackTrace();
} catch (MessagingException ex) {
System.out.println("Could not connect to the message store.");
ex.printStackTrace();
}
}
/**
* 测试-Gmail邮箱
* protocol.
*/
public static void main(String[] args) {
String host = "imap.gmail.com";
String port = "993";
String userName = "your_email";
String password = "your_password";
EmailMessageRemover remover = new EmailMessageRemover();
String subjectToDelete = "Newsletter";
remover.deleteMessages(host, port, userName, password, subjectToDelete);
}
}