下载资源后端资源详情
MonitorQQMailDemo.zip
大小:18.22KB
价格:10积分
下载量:0
评分:
5.0
上传者:szuone
更新日期:2024-10-09

Java语言实现监听QQ邮箱

资源文件列表(大概)

文件名
大小
MonitorQQMailDemo/
-
MonitorQQMailDemo/pom.xml
1.09KB
MonitorQQMailDemo/src/
-
MonitorQQMailDemo/src/main/
-
MonitorQQMailDemo/src/main/java/
-
MonitorQQMailDemo/src/main/java/com/
-
MonitorQQMailDemo/src/main/java/com/monitorqqmaildemo/
-
MonitorQQMailDemo/src/main/java/com/monitorqqmaildemo/MonitorQQMailDemo.java
6.19KB
MonitorQQMailDemo/src/test/
-
MonitorQQMailDemo/src/test/java/
-
MonitorQQMailDemo/target/
-
MonitorQQMailDemo/target/classes/
-
MonitorQQMailDemo/target/classes/.netbeans_automatic_build
-
MonitorQQMailDemo/target/classes/com/
-
MonitorQQMailDemo/target/classes/com/monitorqqmaildemo/
-
MonitorQQMailDemo/target/classes/com/monitorqqmaildemo/MonitorQQMailDemo$1.class
1.11KB
MonitorQQMailDemo/target/classes/com/monitorqqmaildemo/MonitorQQMailDemo$2.class
1.56KB
MonitorQQMailDemo/target/classes/com/monitorqqmaildemo/MonitorQQMailDemo.class
4.16KB
MonitorQQMailDemo/target/generated-sources/
-
MonitorQQMailDemo/target/generated-sources/annotations/
-
MonitorQQMailDemo/target/maven-archiver/
-
MonitorQQMailDemo/target/maven-archiver/pom.properties
117B
MonitorQQMailDemo/target/maven-status/
-
MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/
-
MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/compile/
-
MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/compile/default-compile/
-
MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
142B
MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
90B
MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/testCompile/
-
MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/
-
MonitorQQMailDemo/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
-
MonitorQQMailDemo/target/MonitorQQMailDemo-1.0-SNAPSHOT.jar
5.75KB
MonitorQQMailDemo/target/test-classes/
-
MonitorQQMailDemo/target/test-classes/.netbeans_automatic_build
-

资源内容介绍

基于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(); } }}

用户评论 (0)

发表评论

captcha

相关资源

COMSOL 孔隙尺度渗流模拟,单相及多相渗流模拟,案例复现,水平集(LS)和相场(PF)实现两相流模拟,水驱油,水驱气,二氧化

COMSOL 孔隙尺度渗流模拟,单相及多相渗流模拟,案例复现,水平集(LS)和相场(PF)实现两相流模拟,水驱油,水驱气,二氧化碳驱油等模拟

150.11KB35积分

jre-6u45-windows-i586

jre-6u45-windows-i586

14.11MB41积分

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,反向工作时电动汽车逆变向市电馈电;

328.47KB13积分

微信对话生成器.zip

微信对话生成器,抖音微信聊天记录视频制作工具,是一款模拟微信聊天的工具,可以添加不同用户角色进行对话,支持发送文字、语音、图片、红包、转账等。可以将聊天记录一键生成为图片、长截图、动态图片和视频。抖音上常见的聊天记录视频,使用这款工具可以轻松制作出来。本资源只为了方便自己下载,请支持原作者:https://gitee.com/lifeixue/weixin-chat;

92.33MB32积分