static void Run() { ///<summary> /// This example shows how to list messages from Exchange Server with Paging support /// Introduced in Aspose.Email for .NET 6.4.0 /// ExchangeMessagePageInfo ListMessagesByPage(string folder, int itemsPerPage); /// ExchangeMessagePageInfo ListMessagesByPage(string folder, int itemsPerPage, int offset); /// ExchangeMessagePageInfo ListMessagesByPage(string folder, int itemsPerPage, int pageOffset, ExchangeListMessagesOptions options); /// ExchangeMessagePageInfo ListMessagesByPage(string folder, PageInfo pageInfo); /// ExchangeMessagePageInfo ListMessagesByPage(string folder, PageInfo pageInfo, ExchangeListMessagesOptions options); ///</summary> // ExStart: PagingSupportForListingMessages using (IEWSClient client = EWSClient.GetEWSClient("exchange.domain.com", "username", "password")) { try { // Create some test messages to be added to server for retrieval later int messagesNum = 12; int itemsPerPage = 5; MailMessage message = null; for (int i = 0; i < messagesNum; i++) { message = new MailMessage( "*****@*****.**", "*****@*****.**", "EMAILNET-35157_1 - " + Guid.NewGuid().ToString(), "EMAILNET-35157 Move paging parameters to separate class"); client.AppendMessage(client.MailboxInfo.InboxUri, message); } // Verfiy that the messages have been added to the server ExchangeMessageInfoCollection totalMessageInfoCol = client.ListMessages(client.MailboxInfo.InboxUri); Console.WriteLine(totalMessageInfoCol.Count); ////////////////// RETREIVING THE MESSAGES USING PAGING SUPPORT //////////////////////////////////// List <ExchangeMessagePageInfo> pages = new List <ExchangeMessagePageInfo>(); ExchangeMessagePageInfo pageInfo = client.ListMessagesByPage(client.MailboxInfo.InboxUri, itemsPerPage); // Total Pages Count Console.WriteLine(pageInfo.TotalCount); pages.Add(pageInfo); while (!pageInfo.LastPage) { pageInfo = client.ListMessagesByPage(client.MailboxInfo.InboxUri, itemsPerPage, pageInfo.PageOffset + 1); pages.Add(pageInfo); } int retrievedItems = 0; foreach (ExchangeMessagePageInfo pageCol in pages) { retrievedItems += pageCol.Items.Count; } // Verify total message count using paging Console.WriteLine(retrievedItems); } finally { } } // ExEnd: PagingSupportForListingMessages }
public static void Run() { try { // ExStart:EnumeratMessagesWithPaginginEWS // Create instance of ExchangeWebServiceClient class by giving credentials IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "UserName", "Password"); // Call ListMessages method to list messages info from Inbox ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.GetMailboxInfo().InboxUri); int itemsPerPage = 5; List <PageInfo> pages = new List <PageInfo>(); PageInfo pagedMessageInfoCol = client.ListMessagesByPage(client.MailboxInfo.InboxUri, itemsPerPage); pages.Add(pagedMessageInfoCol); while (!pagedMessageInfoCol.LastPage) { pagedMessageInfoCol = client.ListMessagesByPage(client.MailboxInfo.InboxUri, itemsPerPage); pages.Add(pagedMessageInfoCol); } pagedMessageInfoCol = client.ListMessagesByPage(client.MailboxInfo.InboxUri, itemsPerPage); while (!pagedMessageInfoCol.LastPage) { client.ListMessages(client.MailboxInfo.InboxUri); } } catch (Exception ex) { Console.Write(ex.Message); } finally { } // ExEnd:EnumeratMessagesWithPaginginEWS }
public static void FilterMessagesWithPagingSupport() { const string mailboxUri = "https://outlook.office365.com/ews/exchange.asmx"; const string username = "******"; const string password = "******"; const string domain = "domain"; IEWSClient client = EWSClient.GetEWSClient(mailboxUri, username, password, domain); //ExStart: FilterMessagesWithPagingSupport int itemsPerPage = 5; string sGuid = Guid.NewGuid().ToString(); string str1 = sGuid + " - " + "Query 1"; string str2 = sGuid + " - " + "Query 2"; MailQueryBuilder queryBuilder1 = new MailQueryBuilder(); queryBuilder1.Subject.Contains(str1); MailQuery query1 = queryBuilder1.GetQuery(); List <ExchangeMessagePageInfo> pages = new List <ExchangeMessagePageInfo>(); ExchangeMessagePageInfo pageInfo = client.ListMessagesByPage(client.MailboxInfo.InboxUri, query1, itemsPerPage); pages.Add(pageInfo); int str1Count = pageInfo.Items.Count; while (!pageInfo.LastPage) { pageInfo = client.ListMessagesByPage(client.MailboxInfo.InboxUri, query1, itemsPerPage, pageInfo.PageOffset + 1); pages.Add(pageInfo); str1Count += pageInfo.Items.Count; } //ExEnd: FilterMessagesWithPagingSupport }