使用Java访问EWS

使用Java访问Exchange Web服务(EWS),我们只需要获取一个ExchangeService类的实例,注意:ExchangeService不是线程安全的类,因此每一个线程使用一个实例,代码如下:

1.创建ExchangeService实例和凭证

//创建ExchangeService的对象

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);

//创建凭证

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

//将凭证赋予service

service.setCredentials(credentials);

2.设置服务的URL

设置服务的url有俩种方式:

手动的设置url(如果你知道服务器的url或者事先通过自动发现服务确定了url可以使用此方法进行设置)

使用自动发现服务

使用第一种手动设置的方法如下:

service.setUrl(new URI("EWS-URL"));

通过使用第二种的自动发现服务设置方法如下:

service.autodiscoverUrl("your mail address");

官方建议使用第二种,也就是使用自动发现服务,它的原因如下(英语能力有限,大概意思):

自动发现服务可以给用户确定一个最佳的端点(与用户邮箱服务器最近的端点);

随着管理员部署新的客户端访问服务器,EWS URL可能会更改

注意:手动设置和自动服务发现不能同时调用。

3.Items

在EWS-JAVA-API种定义了Items的类和它对应得结构,每个类都映射到Exchange给定得Items类型中,例如:EmailMessage代表email的消息,Appointment代表日历活动和会议

下面这张图显示了EWS-JAVA-API的项目结构

4.Folders

Folders操作提供对Exchange数据存储中的文件夹的访问,客户端应用程序可以创建、更新、删除、复制、查找和获取并移动与邮箱用户关联的文件夹,EWS-JAVA-API也为Folders定义了类和它得结构,如图:

Items和Folders是Exchange中的唯一标识符,在EWS-JAVA-API中Items和Folders中有一个ID的属性作为Exchange的唯一标识符——(ItemId and FolderId)

5.绑定一个存在的Item

如果你知道message的唯一标识符,那么可以像像下面这样去获取它的详细内容:

//通过ItemId唯一标识符来确定一条消息

EmailMessage message = new EmailMessage(service,new ItemId(id));

//获取这条消息的发件人

System.out.println(message.getSender().getName());

如果你不知道唯一标识符映射的具体类型,可以使用下面的代码:

Item item = Item.bind(service, new ItemId(uniqueId));

if (item instanceof EmailMessage) {

//如果对应的类型是消息类型,获取消息发送者的name

System.out.println(((EmailMessage)item).getSender().getName());

} else if (item instanceof Appointment) {

// If the item is an appointment, write its start time.

System.out.println(((Appointment)item).getStart()));

} else {

// Handle other types.

}

6.绑定一个存在的Folder

代码如下:

Folder folder = Folder.bind(service, new FolderId(uniqueId));

您还可以绑定到一个已知的文件夹(收件箱、日历、任务等),而不需要知道它的ID。

Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);

由于目前项目中使用到得功能只为邮件得读取,所以就介绍到这里,如果哦还有发送得需求以及想更详细的了解可以访问它的官方文档。

java ews appointment_EWS-JAVA-API的使用相关推荐

  1. java ews appointment_EWS Java API 1.1创建约会 - 缺少TimeZoneDefinition

    我遇到了同样的问题 - 并尝试了大部分内容(除了来自editig的java ews api本身),使我的Spring Web应用程序中的StartTimeZone约会与Exchange 2007 SP ...

  2. java ews appointment_EWS API 2.0读取日历信息-读取内容注意事项

    [from] http://www.cnblogs.com/love007/archive/2013/06/26/3156852.html 采用模拟账号的方式读取日历信息,注意下日历的内容读取(Bod ...

  3. atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97

    atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97 1. 实现html5化界面的要解决的策略1 1.1. Js交互1 1.2. 动态参 ...

  4. java+JBroFuzz对restful api进行fuzz测试

    @本文原创,转载请注明 0X00: 序言 fuzz测试作为安全测试的一个基本策略,被越来越多的引入整个测试过程,来避免一些简单的可能引发的安全问题. 如何将fuzzing测试引入软件自动化测试过程是本 ...

  5. 外汇汇率接口 java_基于JAVA的货币汇率api调用代码实例

    代码描述:基于JAVA的货币汇率api调用代码实例 关联数据:货币汇率 接口地址:http://www.juhe.cn/docs/api/id/23 1.[代码][Java]代码 import jav ...

  6. Java - Jackson JSON Java Parser API

    文章目录 概述 依赖 Jackson JSON示例 基础数据 JSON转换为Java对象 Jackson JSON –将JSON转换为Map 概述 Jackson JSON Java Parser非常 ...

  7. java swing调用H5_atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97...

    atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97 1.实现html5化界面的要解决的策略 1.1.Js交互 Firefox与Chro ...

  8. java平台脚本+java编译器API

    [0]README 0.1)本文文字描述转自 core java volume 2, 旨在学习  java平台脚本+java编译器API 的 基础知识: ----------------------- ...

  9. Java 9:Process API的增强

    Java 9对Process API进行了各种改进,用于控制和管理操作系统进程. 获取有关流程的信息 有一个新的ProcessHandle类,提供了进程的pid,父级和后代,以及有关开始时间和累积CP ...

  10. java jsf_将Java 8日期时间API与JSF和Java EE 7结合使用

    java jsf 如果您将Java 8与Java EE 7一起使用,则在尝试利用某些Java 8新功能时可能会遇到一些怪癖. 一个这样的怪癖是,默认情况下,新的Date-Time API不适用于许多J ...

最新文章

  1. 为什么0的补码形式只有一种?
  2. 开封机器人餐厅_百合汇主题酒店——开封首家机器人服务员餐厅
  3. python循环练习_Python循环练习
  4. Zepto 使用中的一些注意点
  5. JfreeChart中文文档
  6. oracle resetlog与noresetlog的作用(转载)
  7. 经典卷积神经网络的学习(二)—— VGGNet
  8. HONOR Magicbook 进不了系统
  9. Windows 10系统【之】内置应用
  10. 【修复版本】SAP PP模块生产版本主数据维护
  11. 中国大学MOOC C语言程序设计(大连理工大学) 课后编程题 第十周题解(个人向仅供参考)
  12. MBR陶瓷膜原料,MBR陶瓷膜堵塞了怎么清理-世来福
  13. absolute导致的高度塌陷问题——解决方法
  14. 2022-2028全球聚乙交酯(PGA)行业调研及趋势分析报告
  15. Ajax——设置请求参数
  16. seo排名系统源码,矩阵系统源码,火剪系统源码
  17. 10t桥式起重机总体设计(有cad图+开题、中期报告+文献翻译)
  18. centos php8 gd库不支持jpeg
  19. 如何测试麦克风和扬声器(耳机)
  20. php 砸金蛋抽奖,jQuery的砸金蛋抽奖代码

热门文章

  1. HTML5-俄罗斯方块
  2. 计算机bios设置系统安装教程,z590主板装win7系统及bios设置教程(支持11代cpu驱动)...
  3. 风景这边独好::王世宏摄影作品选集 读后感
  4. 云服务器上部署 开源项目禅道
  5. 基于JAVA springboot + MYSQL +VUE的项目管理系统(含数据库),包括工时统计、原型预览、效果图管理等
  6. C语言再学习25——常用字符串函数归纳
  7. 精选“数据分析”好问题汇总·第一期
  8. 有道身份证查询接口API
  9. UE4使用贴花(Decal)
  10. 安卓开发中的 “Android高手” ,需要具备哪些技术?