EWS-JAVA-API的使用

使用Java訪問EWS

使用Java訪問Exchange Web服務(EWS),我們只需要獲取一個ExchangeService類的實例,注意:ExchangeService不是線程安全的類,因此每一個線程使用一個實例,代碼如下:

1.創建ExchangeService實例和憑證

//創建ExchangeService的對象
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
//創建憑證
ExchangeCredentials credentials = new WebCredentials("emailAddress","password");
//將憑證賦予service
service.setCredentials(credentials);

2.設置服務的URL

設置服務的url有倆種方式:

  1. 手動的設置url(如果你知道服務器的url或者事先通過自動發現服務確定了url可以使用此方法進行設置
  2. 使用自動發現服務

使用第一種手動設置的方法如下:

service.setUrl(new URI("EWS-URL"));

通過使用第二種的自動發現服務設置方法如下:

service.autodiscoverUrl("your mail address");

官方建議使用第二種,也就是使用自動發現服務,它的原因如下(英語能力有限,大概意思):

  1. 自動發現服務可以給用戶確定一個最佳的端點(與用戶郵箱服務器最近的端點);
  2. 隨着管理員部署新的客戶端訪問服務器,EWS URL可能會更改

注意:手動設置和自動服務發現不能同時調用。

3.Items

在EWS-JAVA-API種定義了Items的類和它對應得結構,每個類都映射到Exchange給定得Items類型中,例如:EmailMessage代表email的消息,Appointment代表日曆活動和會議

下面這張圖顯示了EWS-JAVA-API的項目結構

4.Folders

Folders操作提供對Exchange數據存儲中的文件夾的訪問,客戶端應用程序可以創建、更新、刪除、複製、查找和獲取並移動與郵箱用戶關聯的文件夾,EWS-JAVA-API也爲Folders定義了類和它得結構,如圖:

Items和Folders是Exchange中的唯一標識符,在EWS-JAVA-API中Items和Folders中有一個ID的屬性作爲Exchange的唯一標識符——(ItemId and FolderId)

5.綁定一個存在的Item

如果你知道message的唯一標識符,那麼可以像像下面這樣去獲取它的詳細內容:

//通過ItemId唯一標識符來確定一條消息
EmailMessage message = new EmailMessage(service,new ItemId(id));
//獲取這條消息的發件人
System.out.println(message.getSender().getName());

如果你不知道唯一標識符映射的具體類型,可以使用下面的代碼:

Item item = Item.bind(service, new ItemId(uniqueId));

if (item instanceof EmailMessage) {
	//如果對應的類型是消息類型,獲取消息發送者的name
	System.out.println(((EmailMessage)item).getSender().getName());
} else if (item instanceof Appointment) {
	// If the item is an appointment, write its start time.
	System.out.println(((Appointment)item).getStart()));
} else {
	// Handle other types.
}

6.綁定一個存在的Folder

代碼如下:

Folder folder = Folder.bind(service, new FolderId(uniqueId));

您還可以綁定到一個已知的文件夾(收件箱、日曆、任務等),而不需要知道它的ID。

Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);

由於目前項目中使用到得功能只爲郵件得讀取,所以就介紹到這裏,如果哦還有發送得需求以及想更詳細的瞭解可以訪問它的官方文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章