Exchange服务器之Exchange Web Service (EWS) API 使用笔记
白羽 2018-07-25 来源 :网络 阅读 6493 评论 0

摘要:本文将带你了解Exchange服务器之Exchange Web Service (EWS) API 使用笔记,希望本文对大家学Exchange有所帮助

有时候我们需要使用程序来进行收发邮件, 传统的POP3/SMTP/IMAP等协议也正广泛的被使用着,有关这些协议的收发邮件代码网上一抓一大把~ 如果要用这些协议可以去别处看看.

我这里要谈的是使用Microsoft Exchange Sever来进行邮件的收发.

通过网上查找资料我找到了微软官方的Exchange
 Server Developer Center, 从中得知了可以使用Microsoft Exchange Web Services Managed API来进行Exchange Server的交互. 你可以在这里下载到当前的最新1.1版本.

下载时有两个文件,根据你的实际情况选择即可:


Instructions 
For x64 (64-bit) computers, download and run EwsManagedApi.msi 
For x86 (32-bit) computers, download and run EwsManagedApi32.msi


安装之后的安装目录如图:



要使用EWS, 你需要将Microsoft.Exchange.WebServices.dll引用到你的项目之中.

一些基本的使用可以阅读GettingStarted.doc文件,里面说的比较清楚.

英文不好的同学可以查看这些篇文章


EWS
 Managed API 介绍(上)

EWS
 Managed API 介绍(下)


来自博客园的这两篇文章基本是对于官方GettingStarted.doc文件的翻译.



但是在我的应用中, 我需要读取所有在Inbox(收件箱)里的新邮件, 而已读邮件将被我忽略掉, 在读到新邮件后经过处理再将其标记为已读. 在示例代码中给出的读取Inbox中的邮件功能显然不能满足我的要求.

经过调研,写出如下代码已实现目标


[csharp] 
view plaincopyprint?

//ExchangeService版本为2007SP1 
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 
//参数是用户名,密码,域 
service.Credentials = new WebCredentials(Info.UserName, Info.Password, Info.Domain); 
//给出Exchange Server的URL //xxxxxxx 
service.Url = new Uri(Info.SeverUrl); 
//你自己的邮件地址 xxx@xxx.xxx 
service.AutodiscoverUrl(Info.Email);  //创建过滤器, 条件为邮件未读. 
SearchFilter sf = new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead,
false); 
//查找Inbox,加入过滤器条件,结果10条 
FindItemsResults<item> findResults = service.FindItems(      WellKnownFolderName.Inbox,      sf,      new ItemView(10)); 
  foreach (Item item
in findResults.Items) 
{      EmailMessage email = EmailMessage.Bind(service, item.Id); 
    if (!email.IsRead) 
    {          Console.WriteLine(email.Body);          //标记为已读 
        email.IsRead = true; 
        //将对邮件的改动提交到服务器 
        email.Update(ConflictResolutionMode.AlwaysOverwrite);      }  }</item>     

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Exchange频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程