import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import com.sun.mail.imap.*;
/**
* @author 刘雪华
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class mtest {
public static void main(String[] args) throws Exception {
String imapserver = "mail.xxxxx.com";
String user = "xxxxx";
String pwd = "dddddd";
String todelfrom = "zzzzzz@126.com";
String todelsubject = ".*测试";
Properties prop = System.getProperties();
prop.put("mail.imap.host",imapserver);
prop.put("mail.imap.auth.plain.disable","true");//不知道为什么,以plain方式登录出错,我就禁用它了
Session mailsession=Session.getInstance(prop,null);
mailsession.setDebug(false);
IMAPStore store=(IMAPStore)mailsession.getStore("imap");
store.connect(imapserver,user,pwd);
IMAPFolder folder =(IMAPFolder) store.getFolder("INBOX");
boolean delresult = false;
try{
folder.open(Folder.READ_WRITE);
}
catch(MessagingException ex){
System.err.println("不能以读写方式打开邮箱!");
}
int total = folder.getMessageCount();
System.out.println("total:"+total);
for(int i=1;i<=total;i++){
IMAPMessage msg =(IMAPMessage) folder.getMessage(i);
//System.out.println("----------第"+i+"份---------");
String gfrom = InternetAddress.toString(msg.getFrom());
String from = gfrom.substring(gfrom.indexOf("<")+1,gfrom.indexOf(">"));
if(from.equals(todelfrom) && msg.getSubject().matches(todelsubject)){
msg.setFlag(Flags.Flag.DELETED, true); // set the DELETED flag
delresult = true;
}
}
//System.out.print("未读邮件:"+folder.getUnreadMessageCount());
folder.close(true); //退出收件箱时,删除做了删除标识的邮件
if(delresult)
System.out.println("成功删除该邮件!");
else
System.out.println("删除该邮件失败,或该邮件不存在!");
store.close();
}
}