一、依赖的包

commons-codec-1.11.jar

commons-lang3-3.9.jar

commons-logging-1.2.jar

ews-java-api-2.0.jar

httpclient-4.5.10.jar

httpcore-4.4.12.jar

jcifs-2.1.11.jar

joda-time-2.4.jar

二、代码

package xxx;import java.net.URI;
import java.util.ArrayList;
import microsoft.exchange.webservices.data.core.ExchangeService;
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName;
import microsoft.exchange.webservices.data.core.service.folder.Folder;
import microsoft.exchange.webservices.data.core.service.item.EmailMessage;
import microsoft.exchange.webservices.data.core.service.item.Item;
import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
import microsoft.exchange.webservices.data.credential.WebCredentials;
import microsoft.exchange.webservices.data.search.FindItemsResults;
import microsoft.exchange.webservices.data.search.ItemView;public class EWSLoad {public static void main(String[] args)throws Exception {ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);//登录的账号和密码,账号一定是可以登录进去的账号,不一定是邮箱地址ExchangeCredentials credentials = new WebCredentials("emailAddress", "password", "域");service.setCredentials(credentials);service.setUrl(new URI("https://serverHost /ews/exchange.asmx"));// Bind to the Inbox.Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);System.out.println(inbox.getDisplayName());ItemView view = new ItemView(10);// 查询FindItemsResults<Item> findResults = service.findItems(inbox.getId(), view);ArrayList<Item> items = findResults.getItems();for(int i=0;i<items.size();i++){EmailMessage message = EmailMessage.bind(service, items.get(i).getId());message.load();System.out.println(message.getSender());System.out.println("邮件主题 -->" +items.get(i).getSubject());System.out.println("接收方:"+message.getReceivedBy());System.out.println("抄送方:"+message.getCcRecipients());System.out.println("发送:"+message.getSender());System.out.println("发送人:"+message.getFrom());System.out.println("接收时间:"+items.get(i).getDateTimeReceived());System.out.println("是否已读:"+message.getIsRead());System.out.println("邮件内容:"+getContentFromHtml(message.getBody().toString()));System.out.println("邮件ID:"+items.get(i).getId());}// 查询会议信息getAppoinement(service,"adc@456.com");// 新建一条会议信息saveAppoinement(service);}// 获取会议信息public static void getAppoinement(ExchangeService service,String emailAddress) throws Exception{Date start = new Date();Date end = new Date(start.getTime() + 1000*3600*24);CalendarView cView = new CalendarView(start, end);//指定要查看的邮箱FolderId folderId = new FolderId(WellKnownFolderName.Calendar, new Mailbox(emailAddress));FindItemsResults<Appointment> findResults = null;try {findResults = service.findAppointments(folderId, cView);} catch (Exception e) {e.printStackTrace();}ArrayList<Appointment> appointmentItems = findResults==null?null:findResults.getItems();for(Appointment ap:appointmentItems){ap.load();String subject = ap.getSubject();//如邮箱主题以“已取消”开头,说明该会议已经被取消if(subject.startsWith("已取消")){continue;}//得到HTML格式的内容,通过工具类提取body标签的内容String html_body = ap.getBody().toString();String body = getContentFromHtml(html_body);System.out.println(body);//会议的开始和结束时间Date start1 = ap.getStart();Date end1 = ap.getEnd();//会议使用的资源List<Attendee> resources = ap.getResources().getItems();//参加会议的员工List<Attendee> RequiredAttendees = ap.getRequiredAttendees().getItems();List<Attendee> OptionalAttendees = ap.getOptionalAttendees().getItems();}}// 向 Exchange 发送一条会议邮件public static void saveAppoinement(ExchangeService service) throws Exception{Appointment appointment = null;try {appointment = new Appointment(service);appointment.setSubject("会议主题");appointment.setBody(MessageBody.getMessageBodyFromText("会议消息体"));appointment.setStart(new Date());appointment.setEnd(new Date());appointment.setLocation("会议位置");appointment.getResources().add("会议资源账号,如:meetingroom@company.com");// 必须参加的员工的账号appointment.getRequiredAttendees().add("abc@456.com");// 可选参加的员工的账号appointment.getOptionalAttendees().add("abc@456.com");appointment.save();appointment.update(ConflictResolutionMode.AutoResolve);System.out.println("会议创建成功");} catch (Exception e) {e.printStackTrace();}}// 从HTML提取body信息public static String getContentFromHtml(String content){content = content.replaceAll("</?[^>]+>", ""); //剔出<html>的标签content = content.replaceAll("<a>\\s*|\t|\r|\n</a>", "");content = content.replaceAll("&nbsp;", "");content = content.replaceAll("\n", "");return content;}}

Java使用EWS读取exchange邮件和会议信息相关推荐

  1. java ews_Java---使用EWS读取exchange邮件

    第一步: 下载EWS API相关包: 从如下路径下载EWS API包:http://code.msdn.microsoft.com/Exchange-EWS-Java-API-12-1a5a1143 ...

  2. exchange java ews_Exchange服务器之使用EWS读取Exchange邮件

    依赖的包 commons-codec-1.6.jar commons-lang3-3.1.jar commons-logging-1.1.1.jar ews-java-api-2.0.jar http ...

  3. ews java api maven_通过 EWS JAVA API读取exchange邮件

    为什么80%的码农都做不了架构师?>>> 第一步,下载EWS JAVA API包 从如下路径下载EWS API包:http://code.msdn.microsoft.com/Exc ...

  4. 读取exchange邮件的未读数(转载)

    protected void Page_Load(object sender, EventArgs e)         {             Response.Write("admi ...

  5. EWS操作exchange邮件服务器收发邮件

    参考资料: http://www.dotblogs.com.tw/wadehuang36/archive/2012/07/04/ews-first.aspx 本範例的主要功能是尋找未讀郵件並下載附件. ...

  6. Exchange Web Service(EWS) 协议同步邮件

    Exchange Web Service(EWS) 协议 EWS是微软实现的一种客户端和服务器之间的交换信息的协议.Exchange Server提供了包括从电子邮件.会议安排.团体日程管理.任务管理 ...

  7. javamail 读取/发送exchange邮件

    最近在弄一个邮件系统,主要功能是连接公司的exchange邮件服务器实现在web上收发exchange服务器上的邮件. 在收邮件的时候exchange服务器发送的邮件总是不能正常的解析出来,其他邮件系 ...

  8. java mail outlook_无法使用JavaMail读取Outlook邮件,而使用Gmail工作

    基本上,我编写了一个可从收件箱中读取电子邮件的应用程序.我一直使用Gmail发送的电子邮件测试应用程序.但是现在,当我试图阅读从Outlook发送的电子邮件时,我没有收到任何内容.无法使用JavaMa ...

  9. 读取Exchange的用户未读邮件数3种办法

    1.开通IMAP服务,采用IMAP方法读取,需要提供用户和密码 IMAP_Client imap = new IMAP_Client();//链接imap.Connect(server, port, ...

最新文章

  1. opengl基础学习专题 (二) 点直线和多边形
  2. HTML+CSS实战作业
  3. 三个分级基金(银华100、申万深成、国联双禧)对比图(zz from Fund@newsmth)
  4. sql server 2008安装_性能不够?基于时序数据库的Zabbix 5.2安装指南
  5. 对交换机VLAN及各种端口类型的理解
  6. vue里面rules_vue如何使用rules对表单字段进行校验
  7. python-字典方法(dict)知识整理
  8. 深度学习----一文搞懂激活函数(Sigmoid/ReLU/LeakyReLU/PReLU/ELU)
  9. 信号识别 matlab库,EEG信号MATLAB分析平台设计 ——模式识别部分
  10. mac vs 返回上一步_mac 后退一步 快捷键
  11. 油管机器学习基础 学习笔记
  12. 计算机CPU四大体系架构
  13. 我喜欢两个男人。。。
  14. swper插件:刷新页面,banner轮播图出不来
  15. Modbus从站读写数据
  16. 数据禾|长江经济带主要城市坡度数据
  17. 开题报告:基于java多用户商城平台系统 毕业设计论文开题报告模板
  18. Android注解@TargetApi和@RequiresApi什么意思?
  19. 阿里云李津:公有云做的是信心与责任!
  20. 竟然有删不了的文件夹?

热门文章

  1. 《管理学》第一章 管理与管理学
  2. Onload ‐ TCP
  3. android广告赚钱[转]
  4. 未来,Siri将能读心!
  5. 迷宫(二) 计蒜客--1596
  6. 微信小程序之校园二手交易系统app毕业设计ssm
  7. 9月15日相约苏州丨共同探讨数智化时代,国产数据库的技术创新与实践
  8. CABasicAnimation,CAKeyframeAnimation,CATransition,CAAnimationGroup,UIBezierPath之间做动画的不同点和各自的使用范围。
  9. 使用echarts完成中国省市区县镇地图展示
  10. 分辨率计算机英语,各种分辨率的英文缩写