首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Java语言实现监听QQ邮箱

后端 18.22KB 20 需要积分: 1
立即下载

资源介绍:

基于java的开源库,实现对QQ邮箱的监听。依赖jakarta.mail-api和angus-mail。
package com.monitorqqmaildemo; /* * Copyright (c) 1996, 2020 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Distribution License v. 1.0, which is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * SPDX-License-Identifier: BSD-3-Clause */ import jakarta.mail.Authenticator; import jakarta.mail.Folder; import jakarta.mail.FolderClosedException; import jakarta.mail.Message; import jakarta.mail.MessagingException; import jakarta.mail.PasswordAuthentication; import jakarta.mail.Session; import jakarta.mail.Store; import jakarta.mail.event.MessageCountAdapter; import jakarta.mail.event.MessageCountEvent; import java.util.Properties; import org.eclipse.angus.mail.imap.IMAPFolder; /** * 监听QQ邮箱的示例代码 * @author szuli */ public class MonitorQQMailDemo { public static void main(String argv[]) { Properties props = new Properties(); //指定邮箱服务器地址 props.setProperty("mail.imap.host", "imap.qq.com"); //指定邮箱服务端口 props.setProperty("mail.imap.port", "993"); //支持ssl props.setProperty("mail.imap.ssl.enable", "true"); //支持验证 props.setProperty("mail.imap.auth", "true"); //邮箱用户(注意:需要修改为正确的) props.setProperty("mail.imap.user", "******@qq.com"); //邮箱密码或授权码(注意:需要修改为正确的) props.setProperty("mail.imap.pass", "ufykddhsmnzsbhhd"); //调试开关 props.setProperty("mail.debug", "true"); try { // 创建Authenticator对象,下面建立Session时,需要使用。 Authenticator auth = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { if (Boolean.valueOf(props.getProperty("mail.smtp.auth"))) { return new PasswordAuthentication(props.getProperty("mail.smtp.user"), props.getProperty("mail.smtp.pass")); } return super.getPasswordAuthentication(); } }; //创建Session(要加Authenticator,否则idle不去作用,接收不到邮件目录更新事件) Session session = Session.getInstance(props, auth); //获取 a Store object Store store = session.getStore("imap"); //建立链接 store.connect(props.getProperty("mail.imap.host"), props.getProperty("mail.imap.user"), props.getProperty("mail.imap.pass")); //打开收件箱 Folder inBox = store.getFolder("INBOX"); if (inBox == null || !inBox.exists()) { System.out.println("Invalid folder"); System.exit(1); } //更加需要设置收件箱为只读或者读写。 inBox.open(Folder.READ_WRITE); System.out.println(inBox.getName()); int msgCount = inBox.getMessageCount(); if (msgCount != 0) { //邮件总数 System.out.println("邮件总数:" + msgCount); // 取最新的邮件信息 Message msg = inBox.getMessage(1); System.out.println("邮件主题:" + msg.getSubject()); System.out.println("发件人:" + msg.getFrom()); System.out.println("收件人:" + msg.getRecipients(Message.RecipientType.TO)); System.out.println("抄送人:" + msg.getRecipients(Message.RecipientType.CC)); System.out.println("密送人:" + msg.getRecipients(Message.RecipientType.BCC)); System.out.println("邮件内容:" + msg.getContent()); } // 添加监听器,监听收件箱(当收件箱收到新邮件时,监听器将被触发) inBox.addMessageCountListener(new MessageCountAdapter() { //收件箱收到新邮件时,这个方法将被触发 public void messagesAdded(MessageCountEvent messageCountEvent) { //输出邮件 Message[] msgs = messageCountEvent.getMessages(); System.out.println("Got " + msgs.length + " new messages"); // Just dump out the new messages for (int i = 0; i < msgs.length; i++) { try { System.out.println("-----"); System.out.println("Message " + msgs[i].getMessageNumber() + ":"); System.out.println(msgs[i].getSubject()); } catch (Exception ioex) { ioex.printStackTrace(); } } } }); //是否支持IDLE机制(QQ邮箱支持) boolean supportsIdle = false; try { if (inBox instanceof IMAPFolder) { IMAPFolder f = (IMAPFolder) inBox; //启动监听(当前线程在这里等待,直到有新邮件) f.idle(); supportsIdle = true; } } catch (FolderClosedException fex) { throw fex; } catch (MessagingException mex) { supportsIdle = false; } //如果支持idle,那就是使用idle监听;否则使用轮询机制。 //轮询间隔,单位为毫秒。 int freq = 1000; for (;;) { if (supportsIdle && inBox instanceof IMAPFolder) { IMAPFolder f = (IMAPFolder) inBox; //支持idle机制,等待新邮件事件。 f.idle(); System.out.println("IDLE done"); } else { //间隔指定时间,自动查询邮件,速发事件 Thread.sleep(freq); inBox.getMessageCount(); } } } catch (Exception ex) { ex.printStackTrace(); } } }

资源文件列表:

MonitorQQMailDemo.zip 大约有34个文件
  1. MonitorQQMailDemo/
  2. MonitorQQMailDemo/pom.xml 1.09KB
  3. MonitorQQMailDemo/src/
  4. MonitorQQMailDemo/src/main/
  5. MonitorQQMailDemo/src/main/java/
  6. MonitorQQMailDemo/src/main/java/com/
  7. MonitorQQMailDemo/src/main/java/com/monitorqqmaildemo/
  8. MonitorQQMailDemo/src/main/java/com/monitorqqmaildemo/MonitorQQMailDemo.java 6.19KB
  9. MonitorQQMailDemo/src/test/
  10. MonitorQQMailDemo/src/test/java/
  11. MonitorQQMailDemo/target/
  12. MonitorQQMailDemo/target/classes/
  13. MonitorQQMailDemo/target/classes/.netbeans_automatic_build
  14. MonitorQQMailDemo/target/classes/com/
  15. MonitorQQMailDemo/target/classes/com/monitorqqmaildemo/
  16. MonitorQQMailDemo/target/classes/com/monitorqqmaildemo/MonitorQQMailDemo$1.class 1.11KB
  17. MonitorQQMailDemo/target/classes/com/monitorqqmaildemo/MonitorQQMailDemo$2.class 1.56KB
  18. MonitorQQMailDemo/target/classes/com/monitorqqmaildemo/MonitorQQMailDemo.class 4.16KB
  19. MonitorQQMailDemo/target/generated-sources/
  20. MonitorQQMailDemo/target/generated-sources/annotations/
  21. MonitorQQMailDemo/target/maven-archiver/
  22. MonitorQQMailDemo/target/maven-archiver/pom.properties 117B
  23. MonitorQQMailDemo/target/maven-status/
  24. MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/
  25. MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/compile/
  26. MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/compile/default-compile/
  27. MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst 142B
  28. MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst 90B
  29. MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/testCompile/
  30. MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/
  31. MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
  32. MonitorQQMailDemo/target/MonitorQQMailDemo-1.0-SNAPSHOT.jar 5.75KB
  33. MonitorQQMailDemo/target/test-classes/
  34. MonitorQQMailDemo/target/test-classes/.netbeans_automatic_build
0评论
提交 加载更多评论
其他资源 COMSOL 孔隙尺度渗流模拟,单相及多相渗流模拟,案例复现,水平集(LS)和相场(PF)实现两相流模拟,水驱油,水驱气,二氧化
COMSOL 孔隙尺度渗流模拟,单相及多相渗流模拟,案例复现,水平集(LS)和相场(PF)实现两相流模拟,水驱油,水驱气,二氧化碳驱油等模拟
COMSOL 孔隙尺度渗流模拟,单相及多相渗流模拟,案例复现,水平集(LS)和相场(PF)实现两相流模拟,水驱油,水驱气,二氧化
jre-6u45-windows-i586
jre-6u45-windows-i586
V2G 充电桩,新能源汽车车载充电机, MATLAB仿真模型 ,PFC+CLLC拓扑; 1. V2G,AC DC,DC DC
V2G 充电桩,新能源汽车车载充电机, MATLAB仿真模型 ,PFC+CLLC拓扑; 1. V2G,AC DC,DC DC双向充放电; 2. 前级,双向AC DC单相整流器(PWM),输入AC220V,输入单位功率因数; 3. 后级,双向DC DC,双向CLLC谐振全桥,谐振频率150kHz,PFM变频控制,输出360VDC; 4. 模型仿真功率3.5kW,正向工作时单相市电向对电动汽车输出360VDC,反向工作时电动汽车逆变向市电馈电;
V2G 充电桩,新能源汽车车载充电机, MATLAB仿真模型 ,PFC+CLLC拓扑;
 
1. V2G,AC DC,DC DC
微信对话生成器.zip
微信对话生成器,抖音微信聊天记录视频制作工具,是一款模拟微信聊天的工具,可以添加不同用户角色进行对话,支持发送文字、语音、图片、红包、转账等。可以将聊天记录一键生成为图片、长截图、动态图片和视频。 抖音上常见的聊天记录视频,使用这款工具可以轻松制作出来。 本资源只为了方便自己下载, 请支持原作者:https://gitee.com/lifeixue/weixin-chat;
51单片机定时器Timer0控制流水灯
51单片机定时器Timer0控制LED灯闪烁。C语言编写,免费分享。 资料详细介绍:https://blog.csdn.net/DZGCSCZRJ/article/details/142993064
51单片机实现简易升降调电子琴
51单片机实现简易升降调电子琴
Y的专用键盘,哈哈哈哈
就是一个键盘而已啦!
javaweb项目简单购物系统jsp+servlet+mysql-java课程设计毕业设计
本项目是一个基于 Java Web 的简单购物系统,采用 Servlet 技术和 MySQL 数据库,专为在校大学生的 Java 课程设计和毕业设计提供学习参考。用户可以轻松地在线浏览商品、添加到购物车并完成购买,提升购物体验。 适合 Java 学习者和开发者深入学习和研究,帮助他们掌握 Java Web 开发的核心概念与实用技能。通过本项目,学生可以实践 Java 开发的基本知识,积累实际项目经验,为将来的职业发展打下良好的基础。