package com.aspose.email.examples.exchangeews; import com.aspose.email.Attachment; import com.aspose.email.EWSClient; import com.aspose.email.ExchangeMessageInfo; import com.aspose.email.ExchangeMessageInfoCollection; import com.aspose.email.ExchangeMessagePageInfo; import com.aspose.email.IEWSClient; import com.aspose.email.MailMessage; import com.aspose.email.system.IDisposable; import com.aspose.email.system.collections.generic.List; public class FetchMessagesFromAnExchangeServerMailbox { public static void main(String[] args) { // Uses Exchange Web Services (EWS) to connect and retrieve messages from the Exchange Server fetchMessagesFromAnExchangeServerMailboxUsingEWS(); // Enumerating Messages with Paging in EWS enumerateMessagesWithPagingInEWS(); } public static void fetchMessagesFromAnExchangeServerMailboxUsingEWS() { // Create instance of ExchangeWebServiceClient class by giving credentials IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/exchangeews/exchange.asmx", "testUser", "pwd", "domain"); // Call ListMessages method to list messages info from Inbox ExchangeMessageInfoCollection msgCollection = client.listMessages(client.getMailboxInfo().getInboxUri()); // Loop through the collection to get Message URI for (ExchangeMessageInfo msgInfo : msgCollection) { String strMessageURI = msgInfo.getUniqueUri(); // Now get the message details using FetchMessage() MailMessage msg = client.fetchMessage(strMessageURI); // Display message details System.out.println("Subject: " + msg.getSubject()); //Console.WriteLine("HTML Body: " + msg.HtmlBody); // How many attachments System.out.println("Number of attachments: " + msg.getAttachments().size()); // List the attachments for (Attachment att : msg.getAttachments()) { System.out.println("Attachment Name: " + att.getName()); } } } public static void enumerateMessagesWithPagingInEWS() { IEWSClient client = EWSClient.getEWSClient("exchange.domain.com", "username", "password"); try { // Number of items per page int itemsPerPage = 5; // Create a storage list List<ExchangeMessagePageInfo> pages = new List<ExchangeMessagePageInfo>(); ExchangeMessagePageInfo pageInfo = client.listMessagesByPage(client.getMailboxInfo().getInboxUri(), itemsPerPage); pages.addItem(pageInfo); // Retrieve further pages while (!pageInfo.getLastPage()) { pageInfo = client.listMessagesByPage(client.getMailboxInfo().getInboxUri(), itemsPerPage, pageInfo.getPageOffset() + 1); pages.addItem(pageInfo); } // Verify the number of items retrieved int retrievedItems = 0; for (ExchangeMessagePageInfo pageCol : (Iterable<ExchangeMessagePageInfo>) pages) retrievedItems += pageCol.getItems().size(); System.out.println("Items retrieved: " + retrievedItems); } finally { if (client != null) ((IDisposable) client).dispose(); } } }