首页 > 编程语言 >电子邮件系统 2----JavaMail 搜索指定邮件示例

电子邮件系统 2----JavaMail 搜索指定邮件示例

时间:2023-05-05 23:02:39浏览次数:43  
标签:search String 示例 电子邮件系统 private ---- static new import

1. /**
2.  * CrazyItTest
3.  * 使用JavaMail 搜索并删除指定邮件示例
4.  */
5. package
6. import
7. import
8. import
9. import
10. import
11. import
12. import
13. import
14. import
15. import
16. import
17. import
18. import
19. import
20. /**
21.  * @author Bill Tu(tujiyue/iwtxokhtd)
22.  * May 27, 2011[10:04:20 PM]
23.  *
24.  */
25. public class
26. private static final String  PROTOCOL = "pop3";   
27. private static final String  HOST = "pop3.163.com";   
28. private static final String USER = "iwtxokhtd";   
29. private static final String PASS="123456";   
30.       
31. private static
32. new
33. "mail.store.protocol", PROTOCOL);   
34. "mail.pop3.host", HOST);   
35.           
36.         Session session=Session.getDefaultInstance(props);  
37. return
38.     }  
39.       
40.       
41. private static void searchEmail() throws
42.         Store store=getMailSession().getStore();  
43.         store.connect(HOST,USER,PASS);  
44.           
45. "inbox");//对于POP3协议此参数值只能是inbox 
46. //设置收件夹打开后的读写权限 
47.           
48. int
49. "总共拥有邮件数:"+messageCount);   
50.           
51. if(messageCount>0){   
52.               
53. //搜索指定条件的邮件,还有许多其它的搜索条件,请查阅相关的API 
54. new AndTerm(new FromStringTerm("[email protected]"),   
55. new SubjectTerm("订单8480917155已收到,正在处理中"));   
56.               
57.             Message []messages=receiveFolder.search(search);  
58. int
59. if(count<=0){   
60. "对不起,没搜到你要的邮件");   
61. else{   
62. "共搜索到"+count+"封符合条件的邮件!");   
63. for(Message msg:messages){   
64. "发件人:"+msg.getFrom()[0]+",主题为:"+msg.getSubject());   
65. "您是否要删除此邮件?若要请输入yes:");   
66. new BufferedReader(new
67.                     String input=br.readLine();  
68. if(input!=null && !"".equals(input)   
69. "yes".equals(input.trim())){   
70. //执行后面的关闭才会真正删除掉此邮件 
71. true);   
72.                     }  
73.                 }  
74.             }  
75.         }  
76. true);//关闭邮件夹对象 
77. //断开连接 
78.           
79.           
80.     }  
81.       
82.       
83.       
84. /**
85.      * @param args
86.      * @throws IOException 
87.      * @throws MessagingException 
88.      */
89. public static void main(String[] args) throws
90.         searchEmail();  
91.     }  
92. }  
/** * 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("[email protected]"), 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(); } }

标签:search,String,示例,电子邮件系统,private,----,static,new,import
From: https://blog.51cto.com/iwtxokhtd/6248013

相关文章

  • javaweb性能优化-----总结
    高吞吐量关键指标:1、并发访问量2、在线数量3、数量查询所占比重此三点的直接体现:1、数据状态保存2、登陆状态信息保存3、频繁的数据连接和存储查询策略优化:1、减少一次数据读取的条目可以较大改善和减轻服务器对CPU和内存的压力2、减少一次数据读取的条目可以检查网络传输的压力,减......
  • Java Web性能优化-----1
    JavaWeb性能优化你时常被客户抱怨JSP页面响应速度很慢吗?你想过当客户访问次数剧增时,你的WEB应用能承受日益增加的访问量吗?呵呵下面讲述了调整JSP和servlet的一些非常实用的方法,它可使你的servlet和JSP页面响应更快,扩展性更强。而且在用户数增加的情况下,系统负载会呈现出平滑上长的......
  • MySQL----索引的创建、删除和查看
    1.索引作用  在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。  例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据......
  • 计算机网络功能
    1.资源共享。资源共享是计算机网络的一个非常重要的功能,所有的计算机网络建设的核心目的就是为了实现资源共享。资源共享是推动计算机网络产生和发展的的源动力之一。无论是第一代面向终端的计算机,还是后来的二代、第三代网络都将方便、高效的共享分布资源作为设计和追求的目标。共......
  • C语言--指针的进阶3
    指向函数指针数组的指针intAdd(intx,inty){ returnx+y;}intmain(){ //pf函数指针 int(*pf)(int,int)=Add; //pfArr函数数组指针 int(*pfArr[4])(int,int)={Add}; //ppfArr是一个指向[函数指针数组]的指针 int(*(*ppfArr)[4])(int,int)=&pfArr;......
  • 通用、可扩展的图卷积神经网络
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]图节点邻近度用于衡量图上节点相对某一给定起始节点的相对距离。根据图学习理论,邻近度较高的节点普遍具有较高的相似性。以节点分类任务为例,由于节点邻近度的高低间接指示了图结构上节点间的相似关系,进而包含了各节点的类别信息,......
  • m通过matlab对比PID控制器,自适应PID控制器以及H无穷控制器的控制性能
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要PID控制器PID控制器(比例-积分-微分控制器),由比例单元P、积分单元I和微分单元D组成。通过Kp,Ki和Kd三个参数的设定。PID控制器主要适用于基本线性和动态特性不随时间变化的系统。PID控制器的方块图......
  • MySQL----数据库的安装、创建
    一、MySQL的安装。。。。。 二、MySQL实例的创建注意:停掉MySQL的服务(我的电脑---管理---服务) 如果实例一次创建不成功,第二次创建时会遇到如下错误:mysql安装出现errorNr.1045我们在windows下安装mysql时会出现Accessdeniedforuser'root'@localhost'(usingpassword:No)的问......
  • Alpha阶段项目复审
    这个作业属于哪个课程2023软件工程-双学位作业要求团队作业6——复审与事后分析项目团队下岗工人在就业队目录1.Alpha阶段项目复审1.Alpha阶段项目复审小组的名字和链接优点缺点,bug报告最终名次(无并列)啊对对对队(课表小程序)面对市场用户需求较多,产......
  • JAVA8新特性
    JAVA8新特性Lambda表达式只有函数式接口才能使用Lambda表达式​ Lambda表达式是JDK8中的一个语法糖,它可以对某些匿名内部类的写法进行简化,它是函数式编程思想的一个重要体现,让我们不用关注是什么对象,而是更关注我们对数据进行了什么操作。核心原则​ 可推导可省略基本格......