1. 程式人生 > >Exchange Web Service (EWS) API 使用筆記

Exchange Web Service (EWS) API 使用筆記

有時候我們需要使用程式來進行收發郵件, 傳統的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檔案,裡面說的比較清楚.

英文不好的同學可以檢視這些篇文章

來自部落格園的這兩篇文章基本是對於官方GettingStarted.doc檔案的翻譯.

但是在我的應用中, 我需要讀取所有在Inbox(收件箱)裡的新郵件, 而已讀郵件將被我忽略掉, 在讀到新郵件後經過處理再將其標記為已讀. 在示例程式碼中給出的讀取Inbox中的郵件功能顯然不能滿足我的要求.

經過調研,寫出如下程式碼已實現目標

//ExchangeService版本為2007SP1
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
//引數是使用者名稱,密碼,域
service.Credentials = new WebCredentials(Info.UserName, Info.Password, Info.Domain);
//給出Exchange Server的URL http://xxxxxxx
service.Url = new Uri(Info.SeverUrl);
//你自己的郵件地址 
[email protected]
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 Web Service (EWS) API 使用筆記

有時候我們需要使用程式來進行收發郵件, 傳統的POP3/SMTP/IMAP等協議也正廣泛的被使用著,有關這些協議的收發郵件程式碼網上一抓一大把~ 如果要用這些協議可以去別處看看. 我這裡要談的是使用Microsoft Exchange Sever來進行郵件的收發. 通

exchange web service:通過EWS訪問Exchange收件箱

namespace ConsoleApplication1_0616 {     class Program     {         static void Main(string[] args)         {

2018年讀《Java Restful Web Service 實戰》筆記

2018年大年初四讀《Java Restful Web Service 實戰》看到一句話寫的挺好的,做個記錄: **搞技術的人,是停不下來的。 時而要開疆拓土,學習和研究新的知識點,彌補自己的技術債; 時而要運籌帷幄,將知識點梳理成線,編織成網; 時而要深耕細作,面對當下要攻堅的業務

<<Java RESTful Web Service實戰>> 讀書筆記

protoc 交付 soap pro 內容 ica servlet容器 安全 soap協議 <<Java RESTful Web Service實戰>> 讀書筆記 第一章 JAX-RS2.0入門 REST (Representational

webservice學習筆記(十三):HttpUrlConnection請求Web Service

1.大致流程: a.前端觸發事件 b.ajax傳遞到servlet c.servlet獲取請求值並寫成請求包的形式傳遞給服務端 d.響應碼為200的時候,讀取資料並且寫到瀏覽器上 e.jquery對報文進行解析,獲取return標籤中的響應值並輸出 2.首先新建一個Servl

webservice學習筆記(十):用CXF編寫基於spring的web service

1.編碼實現 a.server端: -建立spring的配置檔案beans.xml,在其中配置SEI ·實體類,SEI及實現類程式碼如下: ·前面釋出webservice是用endpoint,由於這一次是基於spring,所以我們使用的是xml配置檔案,beans.

webservice學習筆記(六):使用CXF開發web service的服務端和客戶端以及WebService請求深入分析

1.使用CXF開發web service -加入cxf的jar包即可,其他不需要改動   a.建立一個java專案,把之前的jdk開發webservice服務端的程式碼複製進去,把cxf的jar複製到lib下面並build path, 注意cxf的lib下有一個不是j

webservice學習筆記(五):編寫天氣預報和手機號碼歸屬地的Web Service

1.找到url(+?wsdl): 天氣預報:"http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl" 手機號碼歸屬地:"http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsd

webservice學習筆記(三):使用jdk開發Web Service

開發Web Service有兩種方式: 1.使用JDK開發(至少1.6或以上) 2.使用CXF框架開發(工作中) 組成: 1.伺服器端 2.客戶端   使用jdk開發Web Service 1.開發伺服器端 a.Web Service編碼: [ema

springboot學習筆記:01Building a RESTful Web Service

我學習的時候使用eclipse Jee 作為開發工具。另外再推薦idea community版本。 學習資料地址 我使用的是maven構建專案方式 按照文章裡介紹的,依次修改活新建: pom.xml src/main/java/hello/Greeting.ja

Java使用JWS API開發Web Service

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                JAX-WS,即Java API for XML Web Service,是Java開發基於SOAP協議的Web Service的標準。使用JWS API就可以

【Katalon學習十三】Katalon Studio 專案之 API/Web Service Project(5.8以上)

Katalon Studio 5.8引入了新的API/Web Service測試專案。這個顯著改進的特性允許您將API/Web Service測試過程從Web UI和移動測試中分離出來——減少專案的混亂。您還可以在Katalon Studio上執行更多的API/Web Service自動化任務,例如

如何選擇Web Service/WCF/Web API

在.net平臺下,有很多的技術選擇來構建一個HTTP Services。 Web Service 1、它是基於SOAP協議的,資料格式是XML 2、只支援HTTP協議 3、它不是開源的,可被任意一個瞭解XML的使用 4、它只能部署在IIS上 WCF 1、它是基於SOAP的,資料格式是XML

文字翻譯APIWeb Service

1、Google Translate API v1,一直是免費的,但從2011年5月26日開始說要停用,到2011年12月1日完全關閉。 2、Google Translate API v2 ,只提供收費服務,每天呼叫次數也有限制 3、Microsoft Transl

Web Service筆記(五):CXF開發RESTful風格的Web Service

前言: 4、可以使用瀏覽器的工具除錯:如 Firefox 的RESTClient 和chrome的REST Console。 一、配置Spring的配置檔案 1、需要引入新的 jar 包。 2、配置 applicationContext-server.xml

mule studio學習筆記(六):外部web service呼叫

1.eclipse中建立web Service        eclipse中配置axis2;       建立dynamic web service,Java Resource src中放置服務實現類,右擊,creat web service生成wsdl,右擊wsdl,p

Web Service筆記(三):wsdl 與 soap協議詳解

一、WSDL語言:(web service definition language - web service定義語言) (一)簡介: 2、wsdl 文件描述了 ws 主要的3個方面: 1)WHATA:該 ws 包含”什麼“操作,即有幾個方法。 2)HOW:該 ws

Web Service學習筆記:動態呼叫WebService

多數時候我們通過 "新增 Web 引用..." 建立客戶端代理類的方式呼叫WebService,但在某些情況下我們可能需要在程式執行期間動態呼叫一個未知的服務。在 .NET Framework 的 System.Web.Services.Description 名稱空間中有

web service學習筆記

Webservice 學習總結:使用jax-ws和spring建立和web容器共埠的webservice服務WebService註解API參考: Web Service工作原理及例項使用CXF 例子一、WebService基本概念什麼是webservice:WebServic

Salesforce中通過SOAP API開發java的web service服務以及踩坑

1.下載Salesforce平臺中WSDL檔案 首先需要的是自己Salesforce平臺的許可權通過。登陸自己的Salesfo