Java 获取 Outlook 邮箱的日历事件

Java 获取 Outlook 邮箱的日历事件

  • 1.需求描述
  • 2.实现方案
  • 3.运行结果

IDE:IntelliJ IDEA 2022.3.3
JDK:1.8.0_351
Outlook:Microsoft Office 2016

1.需求描述

比如现在需要获取 Outlook 邮箱中四月的全部的会议安排,如下图所示
在这里插入图片描述

2.实现方案

使用 ews 获取部署的 Exchange Web Services 数据,这里我们需要使用 Maven 引入下列 jar 包

 <!-- Exchange Web Services (EWS) Java API --><dependency><groupId>com.microsoft.ews-java-api</groupId><artifactId>ews-java-api</artifactId><version>2.0</version></dependency>

代码如下:

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.item.Appointment;
import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
import microsoft.exchange.webservices.data.credential.WebCredentials;
import microsoft.exchange.webservices.data.search.CalendarView;
import microsoft.exchange.webservices.data.search.FindItemsResults;import java.net.URI;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class ExchangeUtil {public static void main(String[] args) throws Exception {//替换为自己公司的Exchange服务器地址String serverAddress = "https://webmail.******.com/ews/Exchange.asmx";//邮箱用户名(可以是域账号用户)String username = "03******";//邮箱密码(可以对应域账号密码)String password = "12******";//创建 Exchange 服务实例ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);//设置邮箱认证ExchangeCredentials credentials = new WebCredentials(username, password);service.setCredentials(credentials);//设置Exchange服务器地址service.setUrl(new URI(serverAddress));//定义日历视图CalendarView calendarView = new CalendarView(toDate("2024-04-01"), toDate("2024-05-01"));//获取日历事件FindItemsResults<Appointment> appointments = service.findAppointments(WellKnownFolderName.Calendar, calendarView);//输出日历事件信息for (Appointment appointment : appointments) {System.out.println("主题: " + appointment.getSubject());System.out.println("地点: " + appointment.getLocation());System.out.println("开始时间: " + toString(appointment.getStart()));System.out.println("结束时间: " + toString(appointment.getEnd()));System.out.println("-----------------------------");}}//字符串转日期public static Date toDate(String str) throws ParseException {DateFormat format = new SimpleDateFormat("yyyy-MM-dd");return format.parse(str);}//日期转字符串public static String toString(Date date) {DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm");return format.format(date);}
}

3.运行结果

如上运行代码之后,可以按照我们的需求获取到日历数据
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/831812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双非二本找工作前的准备day20(算法-二叉树系列)

学习目标&#xff1a; 每天复习代码随想录上的题目1-2道算法&#xff08;时间充足可以继续&#xff09; 今日碎碎念&#xff1a; 1&#xff09;今天开始是二叉树系列 2&#xff09;出租屋里不知道干啥&#xff0c;看看书啊刷刷算法&#xff0c;打打游戏&#xff0c;学学技术…

anaconda、cuda、tensorflow、pycharm环境安装

anaconda、cuda、tensorflow、pycharm环境安装 anaconda安装 anaconda官方下载地址 本文使用的是基于python3.9的anaconda 接下来跟着步骤安装&#xff1a; 检验conda是否成功安装 安装CUDA和cuDNN 提醒&#xff0c;CUDA和cuDNN两者必须版本对应&#xff0c;否者将会出错…

three.js 中ShaderChunk的, common.glsl 介绍

1. three.js 中ShaderChunk的, common.glsl 介绍 在three.js中&#xff0c;我们可以编写底层的shader代码&#xff0c;是通过 THREE.ShaderMaterial 来进行的。 但是three.js他也通过了一些 shader 代码片段&#xff0c;哎我们可以通过引入这些 shader代码片段&#xff0c;在自…

Educational Codeforces Round 165 (Rated for Div. 2) (C、D)

1969C - Minimizing the Sum 题意&#xff1a; 思路&#xff1a;观察到操作数很小&#xff0c;最值问题操作数很容易想到dp&#xff0c;用表示第个元素&#xff0c;操作了次的最小值总和&#xff0c;转移的时候枚举连续操作了几次即可&#xff0c;而连续操作了几次即将全部变成…

陈随易:论技术思维和产品思维

大家好&#xff0c;我是不被定义的前端之虎陈随易。 我的个人网站是&#xff1a;https://chensuiyi.me&#xff0c;欢迎大家眼熟我。 写这篇文章呢&#xff0c;源于一次群聊。 群友有一个产品&#xff0c;其中涉及到免费用户和付费用户对 pdf 的查看权限问题&#xff0c;使用…

图像处理ASIC设计方法 笔记21 标记ASIC的顶层状态机

目录 (一)标记ASIC的工作流程1 ASIC首先从控制寄存器内读出待标记图像的基本参数2若写入了有效的启动命令,则进入下面一帧图像的标记过程。3 ASIC通过接口模块从FIFO1中读取待标记的图像4一帧图像初步标记完成后进行等价表的整理压缩5从临时标记存储器中读取临时标记送入标记…

gitee本地项目上传

1.先生成SSH密钥 ssh-keygen -t rsa -C "trueelegance163.com" 2.gitee配置公钥&#xff0c;设置对应的公钥名称比如:localtest; Git 全局设置:若刚安装完Git&#xff0c;需要进行Git的配置【若已配置完成&#xff0c;此步骤可以跳过】 git config --global user…

SQL注入基础-4

GetSHELL 一、文件读写注入 1、原理&#xff1a;利用文件读写权限进行注入&#xff0c;可以写入一句话木马&#xff0c;也可以读取系统文件的敏感信息。 2、要求和条件&#xff1a;用户最高权限(可以尝试更改secure_file_priv)和网站绝对路径 3、网站的绝对路径 (1)常见路…

大语言模型从Scaling Laws到MoE

1、摩尔定律和伸缩法则 摩尔定律&#xff08;Moores law&#xff09;是由英特尔&#xff08;Intel&#xff09;创始人之一戈登摩尔提出的。其内容为&#xff1a;集成电路上可容纳的晶体管数目&#xff0c;约每隔两年便会增加一倍&#xff1b;而经常被引用的“18个月”&#xf…

CSS精灵图、字体图标、HTML5新增属性、界面样式和网站 favicon 图标

精灵图 为什么要使用精灵图 一个网页中往往会应用很多小的背景图像作为修饰&#xff0c;当网页中的图像过多时&#xff0c;服务器就会频繁地接收和发送请求图片&#xff0c;造成服务器请求压力过大&#xff0c;这将大大降低页面的加载速度,因此&#xff0c;为了有效地减少服务…

扫雷实现详解【递归展开+首次必展开+标记雷+取消标记雷】

扫雷 一.扫雷设计思路二.扫雷代码逐步实现1.创建游戏菜单2.初始化棋盘3.打印棋盘4.随机布置雷5.统计周围雷的个数6.递归展开棋盘7.标记雷8.删除雷的标记9.保证第一次排雷的安全性棋盘必定展开10.排查雷11.判断输赢 三.扫雷总代码四.截图 一.扫雷设计思路 1.创建游戏菜单。  2.…

Leetcode—1056. 易混淆数【简单】Plus

2024每日刷题&#xff08;126&#xff09; Leetcode—1056. 易混淆数 &#x1f4a9;山实现代码 class Solution { public:bool confusingNumber(int n) {int arr[10] {0};int notNum 0;int arr2[12] {0};int size 0;while(n) {int x n % 10;arr[x] 1;arr2[size] x;if(…

力扣爆刷第132天之动态规划五连刷(子序列问题)

力扣爆刷第132天之动态规划五连刷&#xff08;子序列问题&#xff09; 文章目录 力扣爆刷第132天之动态规划五连刷&#xff08;子序列问题&#xff09;总结&#xff1a;一、1035. 不相交的线二、53. 最大子数组和三、392. 判断子序列四、115. 不同的子序列五、583. 两个字符串的…

OneFlow深度学习框原理、用法、案例和注意事项

本文将基于OneFlow深度学习框架&#xff0c;详细介绍其原理、用法、案例和注意事项。OneFlow是由中科院计算所自动化研究所推出的深度学习框架&#xff0c;专注于高效、易用和扩展性强。它提供了一种类似于深度学习库的接口&#xff0c;可以用于构建神经网络模型&#xff0c;并…

【Java基础】Maven的生命周期(clean+site+default)

1. 前言 在 Maven 出现之前&#xff0c;项目构建的生命周期就已经存在&#xff0c;开发人员每天都在对项目进行清理&#xff0c;编译&#xff0c;测试及部署&#xff0c;但由于没有统一的规范&#xff0c;不同公司甚至不同项目之间的构建的方式都不尽相同。 Maven 从大量项目…

Java Web网页设计(7)-网页查看

7.面我们讲最后一个操作 修改的操作 在讲修改之前 我们先讲一个知识点 表单调用的通常是doPost方法 超链接通常调用的是doGet方法 操作如何在同一个方法 (doGet中) 进行区分 type OrderDao orderDaonew OrderDao(); String typereq.getParameter("type"); …

如何学习 Unreal Engine

学习Unreal Engine&#xff08;简称UE&#xff09;&#xff0c;尤其是最新的UE5&#xff0c;是一项复杂但值得的任务&#xff0c;因为它是游戏开发和实时3D内容创建的强大工具。以下是一些建议来帮助您开始学习Unreal Engine&#xff1a; 1. **了解基础知识**&#xff1a;在深…

nn.GRU层输出:state与output的关系

在 GRU&#xff08;Gated Recurrent Unit&#xff09;中&#xff0c;output 和 state 都是由 GRU 层的循环计算产生的&#xff0c;它们之间有直接的关系。state 实际上是 output 中最后一个时间步的隐藏状态。 GRU 的基本公式 GRU 的核心计算包括更新门&#xff08;update gat…

Arxml文件解析03- 自动驾驶Radar服务radar_svc.arxml

<AR-PACKAGES><AR-PACKAGE><SHORT-NAME>bosch</SHORT-NAME><AR-PACKAGES>...</AR-PACKAGES>

c++中unrodered_map与unordered_set的基本使用

unordered_map 在C中&#xff0c;std::unordered_map 是一个无序关联容器&#xff0c;它包含可以重复的键-值对组合&#xff0c;但每个键在容器中必须是唯一的。与std::map不同&#xff0c;std::unordered_map不按照键的排序顺序存储元素&#xff0c;而是使用哈希表来存储元素…