没有EWS,怎么把其他系统的Calendar同步到Exchange?

Exchange 2007及后续版本提供了EWS,等于是提供了一个供其他应用使用的接口,而我们的Exchange是2003版,没有EWS,貌似不能方便地把其他系统的Calendar同步到Exchange...

 

有人说,用WebDAV可以,但我觉得还是复杂了点。

 

昨天看到HTTPBuilder,刹那间有了办法:我们不是有Exchange提供的webmail吗?我们可以手动登录上去操作自己的Calendar,可不可以让几行代码替我们去做这个事情呢?很到应用所做的事情不过是代替人工操作而已。

 

开始研究:

打开浏览器,指向Microsoft Outlook Web Access,出现登录页面
View Source,Ctrl + F,找'<form'和'<INPUT',不难找到登录表单提交的url和传输的表单变量:
<FORM action="/exchweb/bin/auth/owaauth.dll" method="POST" name="logonForm">   
<INPUT type="hidden" name="destination" value="https://webmail.domain.com/Exchange/">
<INPUT type="hidden" name="flags" value="0">
<INPUT type="text" id="username" name="username"...
<INPUT type="password" autocomplete="off" style="width:100%" id="password" name="password"...

 

在groovyConsole中写几行代码并执行以下看看:

import groovyx.net.http.*
def http = new HTTPBuilder( 'https://webmail.domain.com' )
http.post( path: '/exchweb/bin/auth/owaauth.dll', body: [destination:'https://webmail.domain.com/Exchange', flags:'0', username:'domain/username', password:'pwd']) {res->
  if( res.statusLine.statusCode == 302 ) {
    println 'logged in successfully.'  
  }
}
http.get( path: '/Exchange/username/日历', contentType:groovyx.net.http.ContentType.TEXT, query:[Cmd:'contents']) {res, reader->
  System.out << reader
}

成功地读取了我的日历!按照这种先登录后操作的模式来,操作Exchange Server上的Calendar乃至Task,Inbox等其他Folders也是举手之劳而已。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java EWS订阅是通过使用EWS Java API来实现的。您可以使用EWS Java API中的Pull Notifications来进行订阅。在订阅过程中,您可以选择订阅每个邮箱或者特定的文件夹。您可以选择使用流、请求或推送通知,并选择接收哪种类型的事件,例如新邮件、创建、删除、修改日期等等。一旦订阅创建成功,EWS事件将以异步方式从邮箱服务器发送到客户端。\[2\] 如果您需要从HTML中提取body信息,您可以使用一个工具类来实现。下面是一个示例的工具类,可以从HTML中提取内容: ```java public class DataUtils { public static String getContentFromHtml(String content){ content = content.replaceAll("</?\[^>\]+>", ""); //剔出<html>的标签 content = content.replaceAll("<a>\\s*|\t|\r|\n</a>", ""); content = content.replaceAll(" ", ""); content = content.replaceAll("\n", ""); return content; } } ``` 您可以使用这个工具类中的`getContentFromHtml`方法来提取HTML中的body信息。\[3\] #### 引用[.reference_title] - *1* *3* [EWS Java API 的基本使用](https://blog.csdn.net/m0_37972348/article/details/83960690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒](https://blog.csdn.net/weixin_33738578/article/details/93244544)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值