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:GetExchangeMessageInfoFromMessageURI IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "*****@*****.**", "pwd", "domain"); List <string> ids = new List <string>(); List <MailMessage> messages = new List <MailMessage>(); for (int i = 0; i < 5; i++) { MailMessage message = new MailMessage("*****@*****.**", "*****@*****.**", "EMAILNET-35033 - " + Guid.NewGuid().ToString(), "EMAILNET-35033 Messages saved from Sent Items folder doesn't contain 'To' field"); messages.Add(message); string uri = client.AppendMessage(message); ids.Add(uri); } ExchangeMessageInfoCollection messageInfoCol = client.ListMessages(ids); foreach (ExchangeMessageInfo messageInfo in messageInfoCol) { // Do something ... Console.WriteLine(messageInfo.UniqueUri); } // ExEnd:GetExchangeMessageInfoFromMessageURI } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public static void Run() { // ExStart:ExchangeImpersonationUsingEWS // Create instance's of EWSClient class by giving credentials IEWSClient client1 = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser1", "pwd", "domain"); IEWSClient client2 = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser2", "pwd", "domain"); { string folder = "Drafts"; try { foreach (ExchangeMessageInfo messageInfo in client1.ListMessages(folder)) { client1.DeleteMessage(messageInfo.UniqueUri); } string subj1 = string.Format("NETWORKNET_33354 {0} {1}", "User", "User1"); client1.AppendMessage(folder, new MailMessage("*****@*****.**", "*****@*****.**", subj1, "")); foreach (ExchangeMessageInfo messageInfo in client2.ListMessages(folder)) { client2.DeleteMessage(messageInfo.UniqueUri); } string subj2 = string.Format("NETWORKNET_33354 {0} {1}", "User", "User2"); client2.AppendMessage(folder, new MailMessage("*****@*****.**", "*****@*****.**", subj2, "")); ExchangeMessageInfoCollection messInfoColl = client1.ListMessages(folder); //Assert.AreEqual(1, messInfoColl.Count); //Assert.AreEqual(subj1, messInfoColl[0].Subject); client1.ImpersonateUser(ItemChoice.PrimarySmtpAddress, "*****@*****.**"); ExchangeMessageInfoCollection messInfoColl1 = client1.ListMessages(folder); //Assert.AreEqual(1, messInfoColl1.Count); //Assert.AreEqual(subj2, messInfoColl1[0].Subject); client1.ResetImpersonation(); ExchangeMessageInfoCollection messInfoColl2 = client1.ListMessages(folder); //Assert.AreEqual(1, messInfoColl2.Count); //Assert.AreEqual(subj1, messInfoColl2[0].Subject); } finally { try { foreach (ExchangeMessageInfo messageInfo in client1.ListMessages(folder)) { client1.DeleteMessage(messageInfo.UniqueUri); } foreach (ExchangeMessageInfo messageInfo in client2.ListMessages(folder)) { client2.DeleteMessage(messageInfo.UniqueUri); } } catch { } } } // ExEnd:ExchangeImpersonationUsingEWS }
public static void Run() { // Set Exchange Server web service URL, Username, password, domain information string mailboxURI = "https://ex2010/ews/exchange.asmx"; string username = "******"; string password = "******"; string domain = "ex2010.local"; //ExStart: WorkingWithExtendedAttributesOfMessages // Connect to the Exchange Server NetworkCredential credential = new NetworkCredential(username, password, domain); IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential); { try { //Create a new Property PidNamePropertyDescriptor pd = new PidNamePropertyDescriptor( "MyTestProp", PropertyDataType.String, KnownPropertySets.PublicStrings); string value = "MyTestPropValue"; //Create a message MapiMessage message = new MapiMessage( "*****@*****.**", "*****@*****.**", "EMAILNET-38844 - " + Guid.NewGuid().ToString(), "EMAILNET-38844 EWS: Support for create, retrieve and update Extended Attributes for Emails"); //Set property on the message message.SetProperty(pd, value); //append the message to server string uri = client.AppendMessage(message); //Fetch the message from server MapiMessage mapiMessage = client.FetchMapiMessage(uri, new PropertyDescriptor[] { pd }); //Retreive the value from Message string fetchedValue = mapiMessage.NamedProperties[pd].GetString(); } finally { } } //ExEnd: WorkingWithExtendedAttributesOfMessages }
public static void Run() { // ExStart:CopyingMessageToAnotherFolder try { // Create instance of EWSClient class by giving credentials IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain"); MailMessage message = new MailMessage("*****@*****.**", "*****@*****.**", "EMAILNET-34997 - " + Guid.NewGuid().ToString(), "EMAILNET-34997 Exchange: Copy a message and get reference to the new Copy item"); string messageUri = client.AppendMessage(message); string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.DeletedItemsUri); } catch (Exception ex) { Console.WriteLine(ex.Message); } // ExEnd:CopyingMessageToAnotherFolder }