关于引用exchange webservice做二次开发的一些问题

Exchange Web Service (EWS) API 使用笔记

      最近公司需要在内部门户上显示从exchange上获取的邮件列表,一些相关文章上只是粗略的说需要引用exchange webservice来辅助做二次开发,可是怎么找都找不到EWS的引用,无奈之中看到一热心网友的这篇文章,得意解决问题。

      有时候我们需要使用程序来进行收发邮件, 传统的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

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

image

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

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

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

EWS Managed API 介绍(上)

EWS Managed API 介绍(下)

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

 

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

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

01//ExchangeService版本为2007SP1
02ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
03//参数是用户名,密码,域
04service.Credentials = new WebCredentials(Info.UserName, Info.Password, Info.Domain);
05//给出Exchange Server的URL http://xxxxxxx
06service.Url = new Uri(Info.SeverUrl);
07//你自己的邮件地址 xxx@xxx.xxx
08service.AutodiscoverUrl(Info.Email);
09//创建过滤器, 条件为邮件未读.
10SearchFilter sf = new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false);
11//查找Inbox,加入过滤器条件,结果10条
12FindItemsResults<ITEM> findResults = service.FindItems(
13    WellKnownFolderName.Inbox,
14    sf,
15    new ItemView(10));
16  
17foreach (Item item in findResults.Items)
18{
19    EmailMessage email = EmailMessage.Bind(service, item.Id);
20    if (!email.IsRead)
21    {
22        Console.WriteLine(email.Body);
23        //标记为已读
24        email.IsRead = true;
25        //将对邮件的改动提交到服务器
26        email.Update(ConflictResolutionMode.AlwaysOverwrite);
27    }
28}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值