public static void Run()
        {
            // Connect to EWS
            const string mailboxUri = "https://outlook.office365.com/ews/exchange.asmx";
            const string username   = "******";
            const string password   = "******";
            const string domain     = "domain";

            try
            {
                IEWSClient client = EWSClient.GetEWSClient(mailboxUri, username, password, domain);

                // ExStart:CaseSensitiveEmailsFiltering
                // Query building by means of ExchangeQueryBuilder class
                ExchangeQueryBuilder builder = new ExchangeQueryBuilder();
                builder.Subject.Contains("Newsletter", true);
                builder.InternalDate.On(DateTime.Now);
                MailQuery query = builder.GetQuery();
                // ExEnd:CaseSensitiveEmailsFiltering

                // Get list of messages
                ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");

                // Disconnect from EWS
                client.Dispose();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        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
        }
        public static void Run()
        {
            // Connect and log in to IMAP
            const string host     = "host";
            const int    port     = 143;
            const string username = "******";
            const string password = "******";
            ImapClient   client   = new ImapClient(host, port, username, password);

            try
            {
                client.SelectFolder("Inbox");

                // ExStart:SpecifyEncodingForQueryBuilder
                // Set conditions
                ImapQueryBuilder builder = new ImapQueryBuilder(Encoding.UTF8);
                builder.Subject.Contains("ğüşıöç", true);
                MailQuery query = builder.GetQuery();
                // ExEnd:SpecifyEncodingForQueryBuilder

                // Get list of messages
                ImapMessageInfoCollection messages = client.ListMessages(query);
                foreach (ImapMessageInfo info in messages)
                {
                    Console.WriteLine("Message Id: " + info.MessageId);
                }

                // Disconnect from IMAP
                client.Dispose();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public static void Run()
        {
            // ExStart:FilterMessagesFromExchangeMailbox
            try
            {
                // Connect to Exchange Server
                const string mailboxUri = "http://exchange-server/Exchange/username";
                const string username   = "******";
                const string password   = "******";
                const string domain     = "domain.com";

                NetworkCredential credential = new NetworkCredential(username, password, domain);
                ExchangeClient    client     = new ExchangeClient(mailboxUri, credential);

                // Query building by means of ExchangeQueryBuilder class
                ExchangeQueryBuilder builder = new ExchangeQueryBuilder();

                // Set Subject and Emails that arrived today
                builder.Subject.Contains("Newsletter");
                builder.InternalDate.On(DateTime.Now);

                MailQuery query = builder.GetQuery();
                // Get list of messages
                ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");

                // Disconnect from Exchange
                client.Dispose();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            // ExEnd:FilterMessagesFromExchangeMailbox
        }
        public static void Run()
        {
            // Create an instance of the ImapClient class
            ImapClient client = new ImapClient();

            // Specify host, username, password, port and SecurityOptions for your client
            client.Host            = "imap.gmail.com";
            client.Username        = "******";
            client.Password        = "******";
            client.Port            = 993;
            client.SecurityOptions = SecurityOptions.Auto;
            try
            {
                // ExStart:ListMessagesAsynchronouslyWithMailQuery
                ImapQueryBuilder builder = new ImapQueryBuilder();
                builder.Subject.Contains("Subject");
                MailQuery    query                 = builder.GetQuery();
                IAsyncResult asyncResult           = client.BeginListMessages(query);
                ImapMessageInfoCollection messages = client.EndListMessages(asyncResult);
                // ExEnd:ListMessagesAsynchronouslyWithMailQuery

                Console.WriteLine("New Message Added Successfully");
                client.Dispose();
            }
            catch (Exception ex)
            {
                Console.Write(Environment.NewLine + ex);
            }
        }
        public static void Run()
        {
            // ExStart:FilteringMessagesFromIMAPMailbox
            // Connect and log in to IMAP
            const string host     = "host";
            const int    port     = 143;
            const string username = "******";
            const string password = "******";
            ImapClient   client   = new ImapClient(host, port, username, password);

            client.SelectFolder("Inbox");
            // Set conditions, Subject contains "Newsletter", Emails that arrived today
            ImapQueryBuilder builder = new ImapQueryBuilder();

            builder.Subject.Contains("Newsletter");
            builder.InternalDate.On(DateTime.Now);
            // Build the query and Get list of messages
            MailQuery query = builder.GetQuery();
            ImapMessageInfoCollection messages = client.ListMessages(query);

            Console.WriteLine("Imap: " + messages.Count + " message(s) found.");
            // Disconnect from IMAP
            client.Dispose();
            // ExEnd:FilteringMessagesFromIMAPMailbox
        }
Exemple #7
0
        public static void Run()
        {
            // Connect to EWS
            const string mailboxUri = "https://outlook.office365.com/ews/exchange.asmx";
            const string username   = "******";
            const string password   = "******";
            const string domain     = "domain";

            //ExStart: FilterAppointmentsByDateUsingEWS
            IEWSClient client = EWSClient.GetEWSClient(mailboxUri, username, password, domain);

            DateTime             startTime = new DateTime(2017, 09, 15);
            DateTime             endTime   = new DateTime(2017, 10, 10);
            ExchangeQueryBuilder builder   = new ExchangeQueryBuilder();

            builder.Appointment.Start.Since(startTime);
            builder.Appointment.End.BeforeOrEqual(endTime);
            MailQuery query = builder.GetQuery();

            Appointment[] appointments = client.ListAppointments(query);
            //ExEnd: FilterAppointmentsByDateUsingEWS

            //ExStart: FilterAppointmentsByRecurrenceUsingEWS
            builder = new ExchangeQueryBuilder();
            builder.Appointment.IsRecurring.Equals(false);
            query        = builder.GetQuery();
            appointments = client.ListAppointments(query);
            //ExEnd: FilterAppointmentsByRecurrenceUsingEWS
        }
        public static void Run()
        {
            // The path to the File directory.
            // ExStart:SearchStringInPSTWithIgnoreCaseParameter
            string dataDir = RunExamples.GetDataDir_Outlook();

            string path = dataDir + "SearchStringInPSTWithIgnoreCaseParameter_out.pst";

            if (File.Exists(path))
            {
                File.Delete(path);
            }


            using (PersonalStorage personalStorage = PersonalStorage.Create(dataDir + "SearchStringInPSTWithIgnoreCaseParameter_out.pst", FileFormatVersion.Unicode))
            {
                FolderInfo folderInfo = personalStorage.CreatePredefinedFolder("Inbox", StandardIpmFolder.Inbox);

                folderInfo.AddMessage(MapiMessage.FromMailMessage(MailMessage.Load(dataDir + "Message.eml")));

                PersonalStorageQueryBuilder builder = new PersonalStorageQueryBuilder();
                // IgnoreCase is True
                builder.From.Contains("automated", true);

                MailQuery             query = builder.GetQuery();
                MessageInfoCollection coll  = folderInfo.GetContents(query);
                Console.WriteLine(coll.Count);
            }
            // ExEnd:SearchStringInPSTWithIgnoreCaseParameter
        }
        public static void Run()
        {
            Pop3Client client = new Pop3Client();

            client.Host            = "pop.gmail.com";
            client.Port            = 995;
            client.SecurityOptions = SecurityOptions.SSLImplicit;
            client.Username        = "******";
            client.Password        = "******";

            try
            {
                // ExStart:ListMessagesAsynchronouslyWithMailQuery
                MailQueryBuilder builder = new MailQueryBuilder();
                builder.Subject.Contains("Subject");
                MailQuery    query                 = builder.GetQuery();
                IAsyncResult asyncResult           = client.BeginListMessages(query);
                Pop3MessageInfoCollection messages = client.EndListMessages(asyncResult);
                // ExEnd:ListMessagesAsynchronouslyWithMailQuery
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public static void Run()
        {
            // ExStart:FilterTasksFromServer
            // Set mailboxURI, Username, password, domain information
            string            mailboxUri  = "https://ex2010/ews/exchange.asmx";
            string            username    = "******";
            string            password    = "******";
            string            domain      = "ex2010.local";
            NetworkCredential credentials = new NetworkCredential(username, password, domain);
            IEWSClient        client      = EWSClient.GetEWSClient(mailboxUri, credentials);

            ExchangeQueryBuilder          queryBuilder   = null;
            MailQuery                     query          = null;
            ExchangeTask                  fetchedTask    = null;
            ExchangeMessageInfoCollection messageInfoCol = null;

            client.TimezoneId = "Central Europe Standard Time";
            Array values = Enum.GetValues(typeof(ExchangeTaskStatus));

            //Now retrieve the tasks with specific statuses
            foreach (ExchangeTaskStatus status in values)
            {
                queryBuilder = new ExchangeQueryBuilder();
                queryBuilder.TaskStatus.Equals(status);
                query          = queryBuilder.GetQuery();
                messageInfoCol = client.ListMessages(client.MailboxInfo.TasksUri, query);
                fetchedTask    = client.FetchTask(messageInfoCol[0].UniqueUri);
            }

            //retrieve all other than specified
            foreach (ExchangeTaskStatus status in values)
            {
                queryBuilder = new ExchangeQueryBuilder();
                queryBuilder.TaskStatus.NotEquals(status);
                query          = queryBuilder.GetQuery();
                messageInfoCol = client.ListMessages(client.MailboxInfo.TasksUri, query);
            }

            //specifying multiple criterion
            ExchangeTaskStatus[] selectedStatuses = new ExchangeTaskStatus[]
            {
                ExchangeTaskStatus.Completed,
                ExchangeTaskStatus.InProgress
            };
            queryBuilder = new ExchangeQueryBuilder();
            queryBuilder.TaskStatus.In(selectedStatuses);
            query          = queryBuilder.GetQuery();
            messageInfoCol = client.ListMessages(client.MailboxInfo.TasksUri, query);

            queryBuilder = new ExchangeQueryBuilder();
            queryBuilder.TaskStatus.NotIn(selectedStatuses);
            query          = queryBuilder.GetQuery();
            messageInfoCol = client.ListMessages(client.MailboxInfo.TasksUri, query);
            //ExEnd:FilterTasksFromServer
        }
        public static void SendInstallInfo(UserInfo user)
        {
            if (!TenantExtra.Opensource)
            {
                return;
            }
            if (!WizardSettings.Load().Analytics)
            {
                return;
            }

            try
            {
                var url = ConfigurationManagerExtension.AppSettings["web.install-url"];
                if (string.IsNullOrEmpty(url))
                {
                    return;
                }

                var tenant = CoreContext.TenantManager.GetCurrentTenant();
                var q      = new MailQuery
                {
                    Email = user.Email,
                    Id    = CoreContext.Configuration.GetKey(tenant.TenantId),
                    Alias = tenant.TenantDomain,
                };

                var index = url.IndexOf("?v=", StringComparison.InvariantCultureIgnoreCase);
                if (0 < index)
                {
                    q.Version = url.Substring(index + 3) + Environment.OSVersion;
                    url       = url.Substring(0, index);
                }

                using (var webClient = new WebClient())
                {
                    var values = new NameValueCollection
                    {
                        { "query", Signature.Create(q, "4be71393-0c90-41bf-b641-a8d9523fba5c") }
                    };
                    webClient.UploadValues(url, values);
                }
            }
            catch (Exception error)
            {
                LogManager.GetLogger("ASC.Web").Error(error);
            }
        }
        public static void Run()
        {
            // ExStart:ListTasksFromExchangeServerWithEWS
            // Set mailboxURI, Username, password, domain information
            string            mailboxUri  = "https://ex2010/ews/exchange.asmx";
            string            username    = "******";
            string            password    = "******";
            string            domain      = "ex2010.local";
            NetworkCredential credentials = new NetworkCredential(username, password, domain);
            IEWSClient        client      = EWSClient.GetEWSClient(mailboxUri, credentials);

            //Listing Tasks from Server
            client.TimezoneId = "Central Europe Standard Time";
            TaskCollection taskCollection = client.ListTasks(client.MailboxInfo.TasksUri);

            //print retrieved tasks' details
            foreach (ExchangeTask task in taskCollection)
            {
                Console.WriteLine(client.TimezoneId);
                Console.WriteLine(task.Subject);
                Console.WriteLine(task.StartDate);
                Console.WriteLine(task.DueDate);
            }

            //Listing Tasks from server based on Query - Completed and In-Progress
            ExchangeQueryBuilder builder = new ExchangeQueryBuilder();

            ExchangeTaskStatus[] selectedStatuses = new ExchangeTaskStatus[]
            {
                ExchangeTaskStatus.Completed,
                ExchangeTaskStatus.InProgress
            };
            builder.TaskStatus.In(selectedStatuses);

            MailQuery query = builder.GetQuery();

            taskCollection = client.ListTasks(client.MailboxInfo.TasksUri, query);

            //print retrieved tasks' details
            foreach (ExchangeTask task in taskCollection)
            {
                Console.WriteLine(client.TimezoneId);
                Console.WriteLine(task.Subject);
                Console.WriteLine(task.StartDate);
                Console.WriteLine(task.DueDate);
            }
            //ExEnd:ListTasksFromExchangeServerWithEWS
        }
        public static void Run()
        {
            // Connect to EWS
            const string mailboxUri = "https://outlook.office365.com/ews/exchange.asmx";
            const string username   = "******";
            const string password   = "******";
            const string domain     = "domain";

            try
            {
                IEWSClient client = EWSClient.GetEWSClient(mailboxUri, username, password, domain);

                MailQueryBuilder builder = new MailQueryBuilder();

                // ExStart:CombineQueriesWithAND
                // Emails from specific host, get all emails that arrived before today and all emails that arrived since 7 days ago
                builder.From.Contains("SpecificHost.com");
                builder.InternalDate.Before(DateTime.Now);
                builder.InternalDate.Since(DateTime.Now.AddDays(-7));
                // ExEnd:CombineQueriesWithAND

                // Build the query and Get list of messages
                MailQuery query = builder.GetQuery();
                ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:CombiningQueriesWithOR
                builder.Or(builder.Subject.Contains("test"), builder.From.Contains("*****@*****.**"));
                // ExEnd:CombiningQueriesWithOR

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemple #14
0
        public static void Run()
        {
            // Connect and log in to POP3
            const string host     = "host";
            const int    port     = 110;
            const string username = "******";
            const string password = "******";
            Pop3Client   client   = new Pop3Client(host, port, username, password);

            try
            {
                MailQueryBuilder builder = new MailQueryBuilder();

                // ExStart:CombineQueriesWithAND
                // Emails from specific host, get all emails that arrived before today and all emails that arrived since 7 days ago
                builder.From.Contains("SpecificHost.com");
                builder.InternalDate.Before(DateTime.Now);
                builder.InternalDate.Since(DateTime.Now.AddDays(-7));
                // ExEnd:CombineQueriesWithAND

                // Build the query and Get list of messages
                MailQuery query = builder.GetQuery();
                Pop3MessageInfoCollection messages = client.ListMessages(query);
                Console.WriteLine("Pop3: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:CombiningQueriesWithOR
                // Specify OR condition
                builder.Or(builder.Subject.Contains("test"), builder.From.Contains("*****@*****.**"));
                // ExEnd:CombiningQueriesWithOR

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(query);
                Console.WriteLine("Pop3: " + messages.Count + " message(s) found.");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
 public static void SendInstallInfo(UserInfo user)
 {
     try
     {
         StudioNotifyService.Instance.SendCongratulations(user);
     }
     catch (Exception error)
     {
         LogManager.GetLogger("ASC.Web").Error(error);
     }
     try
     {
         var url = WebConfigurationManager.AppSettings["web.install-url"];
         if (!string.IsNullOrEmpty(url))
         {
             var tenant = CoreContext.TenantManager.GetCurrentTenant();
             var q = new MailQuery
             {
                 Email = user.Email,
                 Id = CoreContext.Configuration.GetKey(tenant.TenantId),
                 Alias = tenant.TenantDomain,
             };
             var index = url.IndexOf("?v=");
             if (0 < index)
             {
                 q.Version = url.Substring(index + 3);
                 url = url.Substring(0, index);
             }
             using (var webClient = new WebClient())
             {
                 var values = new NameValueCollection();
                 values.Add("query", Signature.Create<MailQuery>(q, "4be71393-0c90-41bf-b641-a8d9523fba5c"));
                 webClient.UploadValues(url, values);
             }
         }
     }
     catch (Exception error)
     {
         LogManager.GetLogger("ASC.Web").Error(error);
     }
 }
Exemple #16
0
 public static void SendInstallInfo(UserInfo user)
 {
     try
     {
         StudioNotifyService.Instance.SendCongratulations(user);
     }
     catch (Exception error)
     {
         LogManager.GetLogger("ASC.Web").Error(error);
     }
     try
     {
         var url = WebConfigurationManager.AppSettings["web.install-url"];
         if (!string.IsNullOrEmpty(url))
         {
             var tenant = CoreContext.TenantManager.GetCurrentTenant();
             var q      = new MailQuery
             {
                 Email = user.Email,
                 Id    = CoreContext.Configuration.GetKey(tenant.TenantId),
                 Alias = tenant.TenantDomain,
             };
             var index = url.IndexOf("?v=");
             if (0 < index)
             {
                 q.Version = url.Substring(index + 3);
                 url       = url.Substring(0, index);
             }
             using (var webClient = new WebClient())
             {
                 var values = new NameValueCollection();
                 values.Add("query", Signature.Create <MailQuery>(q, "4be71393-0c90-41bf-b641-a8d9523fba5c"));
                 webClient.UploadValues(url, values);
             }
         }
     }
     catch (Exception error)
     {
         LogManager.GetLogger("ASC.Web").Error(error);
     }
 }
Exemple #17
0
        public static void Run()
        {
            // ExStart:FilterMessagesFromPOP3Mailbox
            // Connect and log in to POP3
            const string host     = "host";
            const int    port     = 110;
            const string username = "******";
            const string password = "******";
            Pop3Client   client   = new Pop3Client(host, port, username, password);

            // Set conditions, Subject contains "Newsletter", Emails that arrived today
            MailQueryBuilder builder = new MailQueryBuilder();

            builder.Subject.Contains("Newsletter");
            builder.InternalDate.On(DateTime.Now);
            // Build the query and Get list of messages
            MailQuery query = builder.GetQuery();
            Pop3MessageInfoCollection messages = client.ListMessages(query);

            Console.WriteLine("Pop3: " + messages.Count + " message(s) found.");
            // ExEnd:FilterMessagesFromPOP3Mailbox
        }
        public void SendInstallInfo(UserInfo user)
        {
            try
            {
                StudioNotifyService.SendRegData(user);

                var url = Configuration["web:install-url"];
                if (string.IsNullOrEmpty(url))
                {
                    return;
                }

                var tenant = TenantManager.GetCurrentTenant();
                var q      = new MailQuery
                {
                    Email = user.Email,
                    Id    = CoreSettings.GetKey(tenant.TenantId),
                    Alias = tenant.GetTenantDomain(CoreSettings),
                };

                var index = url.IndexOf("?v=", StringComparison.InvariantCultureIgnoreCase);
                if (0 < index)
                {
                    q.Version = url.Substring(index + 3) + Environment.OSVersion;
                    url       = url.Substring(0, index);
                }

                using var webClient = new WebClient();
                var values = new NameValueCollection
                {
                    { "query", Signature.Create(q, "4be71393-0c90-41bf-b641-a8d9523fba5c") }
                };
                webClient.UploadValues(url, values);
            }
            catch (Exception error)
            {
                Log.Error(error);
            }
        }
Exemple #19
0
        public static void Run()
        {
            try
            {
                ExchangeClient client = new ExchangeClient("http://ex07sp1/exchange/Administrator", "user", "pwd", "domain");

                // ExStart:CaseSensitiveEmailsFilteringUsingExchangeClient
                // Set conditions
                ExchangeQueryBuilder builder = new ExchangeQueryBuilder();
                builder.Subject.Contains("Newsletter", true);
                builder.InternalDate.On(DateTime.Now);
                MailQuery query = builder.GetQuery();
                // ExEnd:CaseSensitiveEmailsFilteringUsingExchangeClient

                ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemple #20
0
        public static void Run()
        {
            //ExStart: 1
            ImapClient imapClient = new ImapClient();

            imapClient.Host                = "<HOST>";
            imapClient.Port                = 993;
            imapClient.Username            = "******";
            imapClient.Password            = "******";
            imapClient.SupportedEncryption = EncryptionProtocols.Tls;
            imapClient.SecurityOptions     = SecurityOptions.SSLImplicit;

            ImapQueryBuilder imapQueryBuilder = new ImapQueryBuilder();

            imapQueryBuilder.HasNoFlags(ImapMessageFlags.IsRead); /* get unread messages. */
            MailQuery query = imapQueryBuilder.GetQuery();

            imapClient.ReadOnly = true;
            imapClient.SelectFolder("Inbox");
            ImapMessageInfoCollection messageInfoCol = imapClient.ListMessages(query);

            Console.WriteLine("Initial Unread Count: " + messageInfoCol.Count());
            if (messageInfoCol.Count() > 0)
            {
                imapClient.FetchMessage(messageInfoCol[0].SequenceNumber);

                messageInfoCol = imapClient.ListMessages(query);
                // This count will be equal to the initial count
                Console.WriteLine("Updated Unread Count: " + messageInfoCol.Count());
            }
            else
            {
                Console.WriteLine("No unread messages found");
            }
            //ExEnd: 1

            Console.WriteLine("ImapReadOnlyMode executed successfully.");
        }
Exemple #21
0
        public static void Run()
        {
            // ExStart:ListMessagesWithMaximumNumberOfMessages
            // Create an imapclient with host, user and password
            ImapClient client = new ImapClient("localhost", "user", "password");

            // Select the inbox folder and Get the message info collection
            ImapQueryBuilder builder = new ImapQueryBuilder();
            MailQuery        query   =
                builder.Or(
                    builder.Or(
                        builder.Or(
                            builder.Or(
                                builder.Subject.Contains(" (1) "),
                                builder.Subject.Contains(" (2) ")),
                            builder.Subject.Contains(" (3) ")),
                        builder.Subject.Contains(" (4) ")),
                    builder.Subject.Contains(" (5) "));
            ImapMessageInfoCollection messageInfoCol4 = client.ListMessages(query, 4);

            Console.WriteLine((messageInfoCol4.Count == 4) ? "Success" : "Failure");
            // ExEnd:ListMessagesWithMaximumNumberOfMessages
        }
Exemple #22
0
        public void Setup()
        {
            mockHttpContextAccessor = new Mock <IHttpContextAccessor>();
            mockHttpContextAccessor
            .Setup(x => x.HttpContext)
            .Returns(new DefaultHttpContext());

            var options = new DbContextOptionsBuilder <MailyContext>()
                          .UseInMemoryDatabase("Maily")
                          .Options;

            context = new MailyContext(options);
            context.Database.EnsureDeleted();

            tokenizer = new Tokenizer(context, mockHttpContextAccessor.Object, new Hasher());
            mockHttpContextAccessor.Object.HttpContext.Request.Headers["Authorization"] = "sampletoken";
            query = new MailQuery(context, tokenizer);

            var user = context.Users.Add(new User()
            {
                Token = "sampletoken"
            }).Entity;

            context.Mails.Add(new Mail()
            {
                User  = user,
                Value = "*****@*****.**"
            });

            context.Mails.Add(new Mail()
            {
                User  = user,
                Value = "*****@*****.**"
            });

            context.SaveChanges();
        }
Exemple #23
0
        public static void Run()
        {
            try
            {
                // Create instance of ExchangeClient class by giving credentials
                ExchangeClient   client  = new ExchangeClient("http://ex07sp1/exchange/Administrator", "user", "pwd", "domain");
                MailQueryBuilder builder = new MailQueryBuilder();

                // ExStart:CombineQueriesWithAND
                // Emails from specific host, get all emails that arrived before today and all emails that arrived since 7 days ago
                builder.From.Contains("SpecificHost.com");
                builder.InternalDate.Before(DateTime.Now);
                builder.InternalDate.Since(DateTime.Now.AddDays(-7));
                // ExEnd:CombineQueriesWithAND

                MailQuery query = builder.GetQuery();
                ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:CombiningQueriesWithOR
                // Specify OR condition
                builder.Or(builder.Subject.Contains("test"), builder.From.Contains("*****@*****.**"));
                // ExEnd:CombiningQueriesWithOR

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public static void Run()
        {
            // Connect and log in to POP3
            const string host     = "host";
            const int    port     = 110;
            const string username = "******";
            const string password = "******";
            Pop3Client   client   = new Pop3Client(host, port, username, password);

            try
            {
                // ExStart:ApplyCaseSensitiveFilters
                // IgnoreCase is True
                MailQueryBuilder builder1 = new MailQueryBuilder();
                builder1.From.Contains("tesT", true);
                MailQuery query1 = builder1.GetQuery();
                Pop3MessageInfoCollection messageInfoCol1 = client.ListMessages(query1);
                // ExEnd:ApplyCaseSensitiveFilters
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public static void Run()
        {
            // Connect and log in to IMAP
            const string host     = "host";
            const int    port     = 143;
            const string username = "******";
            const string password = "******";
            ImapClient   client   = new ImapClient(host, port, username, password);

            try
            {
                client.SelectFolder("Inbox");

                // ExStart:CaseSensitiveEmailsFiltering
                // Set conditions, Subject contains "Newsletter", Emails that arrived today
                ImapQueryBuilder builder = new ImapQueryBuilder();
                builder.Subject.Contains("Newsletter", true);
                builder.InternalDate.On(DateTime.Now);
                MailQuery query = builder.GetQuery();
                // ExEnd:CaseSensitiveEmailsFiltering

                // Get list of messages
                ImapMessageInfoCollection messages = client.ListMessages(query);
                foreach (ImapMessageInfo info in messages)
                {
                    Console.WriteLine("Message Id: " + info.MessageId);
                }

                // Disconnect from IMAP
                client.Dispose();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemple #26
0
        public static void Run()
        {
            // Connect and log in to POP3
            const string host     = "host";
            const int    port     = 143;
            const string username = "******";
            const string password = "******";
            ImapClient   client   = new ImapClient(host, port, username, password);

            try
            {
                // ExStart:GetEmailsWithTodayDate
                // Emails that arrived today
                MailQueryBuilder builder = new MailQueryBuilder();
                builder.InternalDate.On(DateTime.Now);
                // ExEnd:GetEmailsWithTodayDate

                // Build the query and Get list of messages
                MailQuery query = builder.GetQuery();
                ImapMessageInfoCollection messages = client.ListMessages(query);
                Console.WriteLine("Imap: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetEmailsOverDateRange
                // Emails that arrived in last 7 days
                builder.InternalDate.Before(DateTime.Now);
                builder.InternalDate.Since(DateTime.Now.AddDays(-7));
                // ExEnd:GetEmailsOverDateRange

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(query);
                Console.WriteLine("Imap: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetSpecificSenderEmails
                // Get emails from specific sender
                builder.From.Contains("[email protected]");
                // ExEnd:GetSpecificSenderEmails

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(query);
                Console.WriteLine("Imap: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetSpecificDomainEmails
                // Get emails from specific domain
                builder.From.Contains("SpecificHost.com");
                // ExEnd:GetSpecificDomainEmails

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(query);
                Console.WriteLine("Imap: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetSpecificRecipientEmails
                // Get emails sent to specific recipient
                builder.To.Contains("recipient");
                // ExEnd:GetSpecificRecipientEmails

                //ExStart: GetMessagesWithCustomFlags
                ImapQueryBuilder queryBuilder = new ImapQueryBuilder();

                queryBuilder.HasFlags(ImapMessageFlags.Keyword("custom1"));

                queryBuilder.HasNoFlags(ImapMessageFlags.Keyword("custom2"));
                //ExEnd: GetMessagesWithCustomFlags

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(query);
                Console.WriteLine("Imap: " + messages.Count + " message(s) found.");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemple #27
0
        public static void Run()
        {
            try
            {
                // Create instance of ExchangeClient class by giving credentials
                ExchangeClient client = new ExchangeClient("http://ex07sp1/exchange/Administrator", "user", "pwd", "domain");

                // ExStart:GetEmailsWithTodayDate
                // Emails that arrived today
                MailQueryBuilder builder = new MailQueryBuilder();
                builder.InternalDate.On(DateTime.Now);
                // ExEnd:GetEmailsWithTodayDate

                // Build the query and Get list of messages
                MailQuery query = builder.GetQuery();
                ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetEmailsOverDateRange
                // Emails that arrived in last 7 days
                builder.InternalDate.Before(DateTime.Now);
                builder.InternalDate.Since(DateTime.Now.AddDays(-7));
                // ExEnd:GetEmailsOverDateRange

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetSpecificSenderEmails
                // Get emails from specific sender
                builder.From.Contains("[email protected]");
                // ExEnd:GetSpecificSenderEmails

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetSpecificDomainEmails
                // Get emails from specific domain
                builder.From.Contains("SpecificHost.com");
                // ExEnd:GetSpecificDomainEmails

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetSpecificRecipientEmails
                // Get emails sent to specific recipient
                builder.To.Contains("recipient");
                // ExEnd:GetSpecificRecipientEmails

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");

                // ExStart:GetSpecificMessageIdEmail
                // Get email with specific MessageId
                ExchangeQueryBuilder builder1 = new ExchangeQueryBuilder();
                builder1.MessageId.Equals("MessageID");
                // ExEnd:GetSpecificMessageIdEmail

                // Build the query and Get list of messages
                query    = builder1.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");

                // ExStart:GetMailDeliveryNotifications
                // Get Mail Delivery Notifications
                builder1 = new ExchangeQueryBuilder();
                builder1.ContentClass.Equals(ContentClassType.MDN.ToString());
                // ExEnd:GetMailDeliveryNotifications

                // Build the query and Get list of messages
                query    = builder1.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
                Console.WriteLine("Exchange: " + messages.Count + " message(s) found.");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        private int DownloadEmail(Imap imap, MailboxProfile profile, String storagePath)
        {
            int count = 0;

            // Build the MailQuery
            var query = new MailQuery(String.IsNullOrEmpty(profile.ImapQuery) ? "('Deleted' = 'False')" : String.Format("({0}&('Deleted' = 'False'))", profile.ImapQuery));

            // Get all messages matching to the query
            var infos = imap.ListMessages(query);

            // If there are any messages to process, then process them
            if (infos.Any())
            {
                ConfigLogger.Instance.LogInfo("ImapCollector", String.Format("Downloading {0} message{1} from {2}.", infos.Count, infos.Count == 1 ? "" : "s", profile.Description));

                // Download each message
                foreach (var info in infos)
                {
                    if (!timer.Enabled)
                    {
                        break;
                    }

                    // Just check to ensure its valid
                    if (info.Deleted || String.IsNullOrWhiteSpace(info.UniqueId))
                    {
                        continue;
                    }

                    // Track the start time for debug purposes
                    var start = DateTime.Now;

                    MailMessage message = null;

                    try
                    {
                        // Download the message
                        message = imap.FetchMessage(info.UniqueId);

                        // Calculate the time taken to fetch the message
                        var fetchTime = DateTime.Now.Subtract(start);

                        // Process the message (So long as the fetch succeeded)
                        if (message != null)
                        {
                            // Setup the data context
                            using (var ctx = new EmailImportDataContext())
                            {
                                long emailID = 0;

                                // Truncate the subject to avoid data commit errors
                                message.Subject = Truncate(message.Subject, 500);

                                // Check for duplicate
                                if (IsDuplicate(ctx, profile.MailboxGUID, message, ref emailID))
                                {
                                    // Log the duplicate error
                                    ConfigLogger.Instance.LogWarning("ImapCollector", String.Format("Message already downloaded, moved to duplicate folder (existing EmailID = {0}).", emailID));

                                    // Move the message to the duplicate sub folder
                                    imap.MoveMessage(info.UniqueId, "Duplicate", true, false);
                                }
                                else
                                {
                                    // Create an instance of the email database object
                                    var email = new Email();

                                    // Assign properties
                                    email.MailboxGUID  = profile.MailboxGUID;
                                    email.DateSent     = message.DateSent();
                                    email.DateReceived = message.DateReceived();
                                    email.From         = message.From.GetAddressOrDisplayName();
                                    email.MessageID    = message.MessageId;
                                    if (CreditCardHelper.ExistsCCNumber(message.Subject))
                                    {
                                        email.Subject = CreditCardHelper.MaskCCNumbers(message.Subject, '#');
                                    }
                                    else
                                    {
                                        email.Subject = message.Subject;
                                    }
                                    email.Timestamp = DateTime.Now;

                                    // Create the dated storage path
                                    var path = Path.Combine(storagePath, email.Timestamp.Value.ToString("yyyyMMdd"));
                                    FileSystemHelper.CreateDirectory(path);

                                    // Insert the new record
                                    ctx.Emails.InsertOnSubmit(email);

                                    // Submit the email (we need to get the email ID)
                                    using (TransactionScope scope = new TransactionScope())
                                    {
                                        // Initial submit of changes
                                        ctx.SubmitChanges();

                                        // Build the mail message file name
                                        email.MessageFilePath = Path.Combine(path, String.Format("{0:00000000}.eml", email.EmailID));

                                        // Save to disk (delete anything that already exists)
                                        message.Save(email.MessageFilePath, MessageFormat.Eml);

                                        // Get the batch number - THIS SHOULD NEVER HAPPEN IN A MULTI THREAD SCENARIO WITHOUT A LOCK
                                        var batchNumber = ctx.BatchNumbers.SingleOrDefault(b => b.Group == profile.Group);

                                        // If there is no batchNumber defined yet, create and insert one
                                        if (batchNumber == null)
                                        {
                                            batchNumber       = new BatchNumber();
                                            batchNumber.Group = profile.Group;
                                            ctx.BatchNumbers.InsertOnSubmit(batchNumber);
                                        }

                                        // Init to 0 if null
                                        if (!batchNumber.Value.HasValue)
                                        {
                                            batchNumber.Value = 0;
                                        }

                                        // Set the new batch number to this email
                                        email.BatchNumber = String.Format(String.IsNullOrWhiteSpace(profile.BatchNumberFormat) ? "{0:00000000}" : profile.BatchNumberFormat, ++batchNumber.Value);

                                        // Final submit of updates
                                        ctx.SubmitChanges();

                                        // Finally, commit to the database
                                        scope.Complete();
                                    }

                                    // Move the email to the archive (if this fails, but the download is complete this
                                    // will just result in a duplicate next time round if the deleted flag is not set)
                                    imap.MoveMessage(info.UniqueId, "Archive", true, false);

                                    // Log message level download stats
                                    ConfigLogger.Instance.LogDebug("ImapCollector", String.Format("Message downloaded (EmailID = {0}, Fetch Time = {1}s, Total Time = {2}s).", email.EmailID, (int)fetchTime.TotalSeconds, (int)DateTime.Now.Subtract(start).TotalSeconds));

                                    // Increment the download count
                                    count++;
                                }
                            }
                        }
                    }
                    catch (OutOfMemoryException)
                    {
                        throw;
                    }
                    catch (Exception e)
                    {
                        ConfigLogger.Instance.LogError("ImapCollector", e);
                    }
                    finally
                    {
                        if (message != null)
                        {
                            message.Dispose();
                        }
                    }
                }
            }

            return(count);
        }
        private void HouseKeeping()
        {
            ConfigLogger.Instance.LogInfo("ImapCollector", "Performing house keeping tasks...");

            // Save the default timeout value
            var timeout = Imap.Timeout;

            try
            {
                // Set timeout to 5 mins for housekeeping
                Imap.Timeout = 300000;

                // Loop through each mailbox defined in the configuration file
                foreach (var profile in Settings.MailboxProfiles.Values)
                {
                    // Ignore if no imap host is defined
                    if (String.IsNullOrWhiteSpace(profile.ImapHost))
                    {
                        continue;
                    }

                    // Determine date to purge from based on retention setting
                    var date = DateTime.Today.AddDays(0 - Math.Abs(profile.ImapRetention));

                    try
                    {
                        // Create an imap session (auto connect/login/select)
                        using (Imap imap = new Imap(profile))
                        {
                            // Build the MailQuery
                            var query = new MailQuery(String.IsNullOrEmpty(profile.ImapQuery) ? String.Format("('InternalDate' < '{0:dd-MMM-yyyy}')", date) : String.Format("({0}&('InternalDate' < '{1:dd-MMM-yyyy}'))", profile.ImapQuery, date));

                            // Select the Archive folder
                            if (imap.SelectFolderIfExists("Archive", true))
                            {
                                // Find all messages matching the query
                                var infos = imap.ListMessages(query);

                                // Delete all of the messages found
                                foreach (var info in infos)
                                {
                                    imap.DeleteMessage(info.UniqueId, false);
                                }

                                ConfigLogger.Instance.LogInfo("ImapCollector", String.Format("Deleted {0} message{1} from {2}.", infos.Count, infos.Count == 1 ? "" : "s", profile.Description));
                            }

                            // Expunge the deleted messages
                            imap.ExpungeMessages();
                        }
                    }
                    catch (OutOfMemoryException)
                    {
                        throw;
                    }
                    catch (Exception e)
                    {
                        // Add custom data for logging purposes
                        e.Data.Add("MailboxGUID", profile.MailboxGUID);

                        // Log the warning (not error)
                        ConfigLogger.Instance.LogWarning("ImapCollector", e);
                    }
                }
            }
            catch (OutOfMemoryException)
            {
                throw;
            }
            catch (Exception e)
            {
                // We don't want housekeeping to cause a failure, but we want someone to
                // know about it so that they can investigate the issue
                ConfigLogger.Instance.LogWarning("ImapCollector", e);
            }
            finally
            {
                // Reset the original timeout value
                Imap.Timeout = timeout;
            }
        }
        static void Run()
        {
            // ExStart:SearchWithPagingSupport
            ///<summary>
            /// This example shows how to search for messages using ImapClient of the API with paging support
            /// Introduced in Aspose.Email for .NET 6.4.0
            ///</summary>
            using (ImapClient client = new ImapClient("host.domain.com", 84, "username", "password"))
            {
                try
                {
                    // Append some test messages
                    int         messagesNum  = 12;
                    int         itemsPerPage = 5;
                    MailMessage message      = null;
                    for (int i = 0; i < messagesNum; i++)
                    {
                        message = new MailMessage(
                            "*****@*****.**",
                            "*****@*****.**",
                            "EMAILNET-35128 - " + Guid.NewGuid(),
                            "111111111111111");
                        client.AppendMessage(ImapFolderInfo.InBox, message);
                    }
                    string body = "2222222222222";
                    for (int i = 0; i < messagesNum; i++)
                    {
                        message = new MailMessage(
                            "*****@*****.**",
                            "*****@*****.**",
                            "EMAILNET-35128 - " + Guid.NewGuid(),
                            body);
                        client.AppendMessage(ImapFolderInfo.InBox, message);
                    }

                    ImapQueryBuilder iqb = new ImapQueryBuilder();
                    iqb.Body.Contains(body);
                    MailQuery query = iqb.GetQuery();

                    client.SelectFolder(ImapFolderInfo.InBox);
                    ImapMessageInfoCollection totalMessageInfoCol = client.ListMessages(query);
                    Console.WriteLine(totalMessageInfoCol.Count);

                    //////////////////////////////////////////////////////

                    List <ImapPageInfo> pages    = new List <ImapPageInfo>();
                    ImapPageInfo        pageInfo = client.ListMessagesByPage(ImapFolderInfo.InBox, query, itemsPerPage);
                    pages.Add(pageInfo);
                    while (!pageInfo.LastPage)
                    {
                        pageInfo = client.ListMessagesByPage(ImapFolderInfo.InBox, query, pageInfo.NextPage);
                        pages.Add(pageInfo);
                    }
                    int retrievedItems = 0;
                    foreach (ImapPageInfo folderCol in pages)
                    {
                        retrievedItems += folderCol.Items.Count;
                    }
                }
                finally
                {
                }
            }
            // ExEnd: SearchWithPagingSupport
        }
        public static void Run()
        {
            // Connect to EWS
            const string mailboxUri = "https://outlook.office365.com/ews/exchange.asmx";
            const string username   = "******";
            const string password   = "******";
            const string domain     = "domain";

            try
            {
                IEWSClient client = EWSClient.GetEWSClient(mailboxUri, username, password, domain);

                // ExStart:GetEmailsWithTodayDate
                // Emails that arrived today
                MailQueryBuilder builder = new MailQueryBuilder();
                builder.InternalDate.On(DateTime.Now);
                // ExEnd:GetEmailsWithTodayDate

                // Build the query and Get list of messages
                MailQuery query = builder.GetQuery();
                ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetEmailsOverDateRange
                // Emails that arrived in last 7 days
                builder.InternalDate.Before(DateTime.Now);
                builder.InternalDate.Since(DateTime.Now.AddDays(-7));
                // ExEnd:GetEmailsOverDateRange

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetSpecificSenderEmails
                // Get emails from specific sender
                builder.From.Contains("[email protected]");
                // ExEnd:GetSpecificSenderEmails

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetSpecificDomainEmails
                // Get emails from specific domain
                builder.From.Contains("SpecificHost.com");
                // ExEnd:GetSpecificDomainEmails

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");

                builder = new MailQueryBuilder();

                // ExStart:GetSpecificRecipientEmails
                // Get emails sent to specific recipient
                builder.To.Contains("recipient");
                // ExEnd:GetSpecificRecipientEmails

                // Build the query and Get list of messages
                query    = builder.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");

                // ExStart:GetSpecificMessageIdEmail
                // Get email with specific MessageId
                ExchangeQueryBuilder builder1 = new ExchangeQueryBuilder();
                builder1.MessageId.Equals("MessageID");
                // ExEnd:GetSpecificMessageIdEmail

                // Build the query and Get list of messages
                query    = builder1.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");

                // ExStart:GetMailDeliveryNotifications
                // Get Mail Delivery Notifications
                builder1 = new ExchangeQueryBuilder();
                builder1.ContentClass.Equals(ContentClassType.MDN.ToString());
                // ExEnd:GetMailDeliveryNotifications

                //ExStart: FilterMessagesByMessageSize
                builder1 = new ExchangeQueryBuilder();
                builder1.ItemSize.Greater(80000);
                //ExEnd: FilterMessagesByMessageSize

                // Build the query and Get list of messages
                query    = builder1.GetQuery();
                messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
                Console.WriteLine("EWS: " + messages.Count + " message(s) found.");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }