- 论坛徽章:
- 0
|
用javamail以imap协议删除邮件服务器上指定邮件
今天好不容易搞定这个问题,记下来,呵呵.
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.xxxx.com";
String user = "xxxxxx";
String pwd = "dddd";
String todelfrom = "
zzzz@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"));
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();
}
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8731/showart_38081.html |
|