0. EWS JAVA API是什么?

用来访问 Exchange Web 服务的 Java 客户端,说白了就是一套访问Exchange邮件服务的Java API库,利用它我们可以编写Java代码来动态创建和发送所需要的html邮件了。

1. 如何监听是否有新邮件?

第一步:建立一个Maven项目,加入以下依赖:

com.microsoft.ews-java-api

ews-java-api

2.0

第二步:通过使用EWS JAVA API访问EWS

要使用EWS JAVA API访问Exchange Web服务(EWS),只需要一个ExchangeService类的实例,如以下示例所示。

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);

ExchangeCredentials credentials = new WebCredentials("emailAddress", "password");

service.setCredentials(credentials);

第三步:在EWS JAVA API中使用拉取通知,利用Timer循环运行:

例子里每30秒运行一次拉取操作

List folder = new ArrayList();

FolderId folder1 = new FolderId(WellKnownFolderName.Inbox);

folder.add(folder1);

final PullSubscription subscription = service.subscribeToPullNotifications(folder, 5, null,

EventType.NewMail, EventType.Created, EventType.Deleted);

Integer cacheTime = 1000 * 30;

Timer timer = new Timer();

timer.schedule(new TimerTask() {

@Override

public void run() {

try {

GetEventsResults events = subscription.getEvents();

System.out.println("####### EVENTS: " + events.getItemEvents().toString());

for (ItemEvent itemEvent : events.getItemEvents()) {

if (itemEvent.getEventType() == EventType.NewMail) {

EmailMessage message = EmailMessage.bind(service, itemEvent.getItemId());

System.out.println("######## NEW EMAIL MESSAGE IS: " + message.getSubject());

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}, 0, cacheTime);

}

2. 运行效果

发了三封邮件,邮件的Subject分别是Re: Subject1;Re: Subject2;Re: Subject3

可以看到确实拉取到了新邮件内容,实际效果如下:

图片.png

ews java 新建邮箱_通过EWS JAVA API订阅邮箱更新相关推荐

  1. java hdfs 新建目录_如何用java在hdfs中创建一个新目录?

    public static void main(String[] args) throws IOException, URISyntaxException { ????????????配置config ...

  2. java 02-cf_cf活动如何设置java环境变量_如何设置java环境变量

    cf助手怎么连接wifi_连接无线网设置 对于刚刚学习java的win7用户来说,首先要学会安装jdk和配置java环境变量,这是学习java的唯一途径,否则编写的代码运行时会出现bug.关于这一点, ...

  3. java基础分享_一、java基础教程

    1.java是一门比较纯粹的面向对象编程语言,所以java的所有代码都必须写在类的内部. 1.1 java的可执行文件后缀名是".java",例如HelloWorld.java,并 ...

  4. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  5. java设计模式并发_[高并发Java 七] 并发设计模式

    [高并发Java 七] 并发设计模式 [高并发Java 七] 并发设计模式 为什么80%的码农都做不了架构师?>>> 在软件工程中,设计模式(design pattern)是对软件设 ...

  6. macbook配置java环境变量_如何安装Java和配置环境变量

    本文是Java下载.安装.环境变量配置的具体步骤,关于环境变量的原理参阅: Java轻松入门经典教程-环境变量配置​ke.qq.com Java年构架师技术栈/微服务/源码分析/分布式/高并发/性能优 ...

  7. java 线程 原子性_深入理解Java多线程与并发框架——Java内存模型与原子性、可见性、有序性...

    欢迎关注专栏<Java架构筑基>--专注于Java技术的研究与分享!Java架构筑基​zhuanlan.zhihu.comJava架构筑基--专注于Java技术的研究与分享! 后续文章将首 ...

  8. 马士兵 java 学习笔记_马士兵java教程笔记1

    ---恢复内容开始--- 前记 虽然已经是个研究生了,但是会的东西还是特别的少 甚至连java都不能说是很会 所以准备从现在开始能好好的学习java 变成java master 标识符 标识符是由字母 ...

  9. java课程任务_修真院java后端工程师学习课程--任务1(day three)

    今天主要学习了数据库的连接,以及数据的增加查找删除更新,jdbc和Mysql这两种数据库的连接方式操作的语句并没有区别,mybatis把方法封装到了xml文件里面更加的简便和方便我们的操作. 话不多说 ...

  10. java 奇门遁甲代码_奇门遁甲之Transform API

    函数插桩技术是可以提高开发者开发效能的有力工具.常用的组合是TransformApi+ ASM,在打包apk的过程中,对特定的类最修改,偷梁换柱,以满足我们的一些特殊需要,如全局监控网络.计算方法耗时 ...

最新文章

  1. day6 面向对象基础
  2. 视频直播网站开发千万不能忘的一个知识点
  3. RoadMap,走出自己的特色主义
  4. 避无可避:Mesos安全问题的几点思考
  5. C语言项目--教师信息/学生成绩管理系统
  6. Oracle--SQL技巧之二(多行记录用逗号拼接在一起)
  7. oracle 物理表,【查询Oracle表实际物理使用大小】
  8. IT资料,重磅来袭!
  9. linux服务器用哪个面板好,Linux服务器管理面板哪家比较好用?
  10. Logistic回归分类算法原理分析与代码实现
  11. 怎么使用阿里巴巴矢量图标
  12. 一款不错的图片自动向上翻滚的代码
  13. RS锁存器,D锁存器、D触发器简介
  14. 第四章不定积分(∫(e^x)sin²xdx)
  15. linux部署qq机器人记录
  16. 基于QT实现的图元拖曳、定点滚轮旋转和缩放
  17. 用pip给python安装matplotlib库-windows
  18. 配置普通链接二维码规则,一直提示校验文件检查失败
  19. J storm战队成员_J.Storm战队踢掉队内三号位Forev主动扣分
  20. ERROR:Session/line number was not unique in database. History logging moved to new session.

热门文章

  1. 正宇丨生活其实很简单,想通了每天都是晴天
  2. 维智创始人陶闯博士:利用数字孪生空间计算供需平衡寻找最优解|元宇宙与碳中和
  3. 以核心素养为导向的计算机教学方式,《核心素养导向的课堂教学》导读
  4. js 全屏移动漂浮框广告栏(3w)
  5. Api --String知识点
  6. window.onload的作用
  7. win11 安卓子系统(WSA)安装教程
  8. 学法减分助手PRO小程序源码
  9. POJ2248 Addition Chains(迭代加深搜索)
  10. 编写一段李志坤喜欢杨静,杨静不喜欢李志坤的世纪虐恋