- /**
- * CrazyItTest
- * 使用JavaMail 搜索并删除指定邮件示例
- */
- package com.labci.javamail.test;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Properties;
- import javax.mail.Flags;
- import javax.mail.Folder;
- import javax.mail.Message;
- import javax.mail.MessagingException;
- import javax.mail.Session;
- import javax.mail.Store;
- import javax.mail.search.AndTerm;
- import javax.mail.search.FromStringTerm;
- import javax.mail.search.SearchTerm;
- import javax.mail.search.SubjectTerm;
- /**
- * @author Bill Tu(tujiyue/iwtxokhtd)
- * May 27, 2011[10:04:20 PM]
- *
- */
- public class SearchEmailTest {
- private static final String PROTOCOL = "pop3";
- private static final String HOST = "pop3.163.com";
- private static final String USER = "iwtxokhtd";
- private static final String PASS="123456";
- private static Session getMailSession(){
- Properties props=new Properties();
- props.put("mail.store.protocol", PROTOCOL);
- props.put("mail.pop3.host", HOST);
- Session session=Session.getDefaultInstance(props);
- return session;
- }
- private static void searchEmail() throws MessagingException, IOException{
- Store store=getMailSession().getStore();
- store.connect(HOST,USER,PASS);
- Folder receiveFolder=store.getFolder("inbox");//对于POP3协议此参数值只能是inbox
- receiveFolder.open(Folder.READ_WRITE);//设置收件夹打开后的读写权限
- int messageCount=receiveFolder.getMessageCount();
- System.out.println("总共拥有邮件数:"+messageCount);
- if(messageCount>0){
- //搜索指定条件的邮件,还有许多其它的搜索条件,请查阅相关的API
- SearchTerm search=new AndTerm(new FromStringTerm("ordernotifier@sendmail.dangdang.com"),
- new SubjectTerm("订单8480917155已收到,正在处理中"));
- Message []messages=receiveFolder.search(search);
- int count=messages.length;
- if(count<=0){
- System.out.println("对不起,没搜到你要的邮件");
- }else{
- System.out.println("共搜索到"+count+"封符合条件的邮件!");
- for(Message msg:messages){
- System.out.println("发件人:"+msg.getFrom()[0]+",主题为:"+msg.getSubject());
- System.out.println("您是否要删除此邮件?若要请输入yes:");
- BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
- String input=br.readLine();
- if(input!=null && !"".equals(input)
- &&"yes".equals(input.trim())){
- //执行后面的关闭才会真正删除掉此邮件
- msg.setFlag(Flags.Flag.DELETED, true);
- }
- }
- }
- }
- receiveFolder.close(true);//关闭邮件夹对象
- store.close();//断开连接
- }
- /**
- * @param args
- * @throws IOException
- * @throws MessagingException
- */
- public static void main(String[] args) throws MessagingException, IOException {
- searchEmail();
- }
- }
/** * CrazyItTest * 使用JavaMail 搜索并删除指定邮件示例 */ package com.labci.javamail.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Properties; import javax.mail.Flags; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Store; import javax.mail.search.AndTerm; import javax.mail.search.FromStringTerm; import javax.mail.search.SearchTerm; import javax.mail.search.SubjectTerm; /** * @author Bill Tu(tujiyue/iwtxokhtd) * May 27, 2011[10:04:20 PM] * */ public class SearchEmailTest { private static final String PROTOCOL = "pop3"; private static final String HOST = "pop3.163.com"; private static final String USER = "iwtxokhtd"; private static final String PASS="123456"; private static Session getMailSession(){ Properties props=new Properties(); props.put("mail.store.protocol", PROTOCOL); props.put("mail.pop3.host", HOST); Session session=Session.getDefaultInstance(props); return session; } private static void searchEmail() throws MessagingException, IOException{ Store store=getMailSession().getStore(); store.connect(HOST,USER,PASS); Folder receiveFolder=store.getFolder("inbox");//对于POP3协议此参数值只能是inbox receiveFolder.open(Folder.READ_WRITE);//设置收件夹打开后的读写权限 int messageCount=receiveFolder.getMessageCount(); System.out.println("总共拥有邮件数:"+messageCount); if(messageCount>0){ //搜索指定条件的邮件,还有许多其它的搜索条件,请查阅相关的API SearchTerm search=new AndTerm(new FromStringTerm("ordernotifier@sendmail.dangdang.com"), new SubjectTerm("订单8480917155已收到,正在处理中")); Message []messages=receiveFolder.search(search); int count=messages.length; if(count<=0){ System.out.println("对不起,没搜到你要的邮件"); }else{ System.out.println("共搜索到"+count+"封符合条件的邮件!"); for(Message msg:messages){ System.out.println("发件人:"+msg.getFrom()[0]+",主题为:"+msg.getSubject()); System.out.println("您是否要删除此邮件?若要请输入yes:"); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String input=br.readLine(); if(input!=null && !"".equals(input) &&"yes".equals(input.trim())){ //执行后面的关闭才会真正删除掉此邮件 msg.setFlag(Flags.Flag.DELETED, true); } } } } receiveFolder.close(true);//关闭邮件夹对象 store.close();//断开连接 } /** * @param args * @throws IOException * @throws MessagingException */ public static void main(String[] args) throws MessagingException, IOException { searchEmail(); } }