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);
            }
        }
Esempio n. 3
0
        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
        }
Esempio n. 4
0
        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
 }