当前位置: 首页>>代码示例>>C#>>正文


C# ExchangeService.FindItems方法代码示例

本文整理汇总了C#中ExchangeService.FindItems方法的典型用法代码示例。如果您正苦于以下问题:C# ExchangeService.FindItems方法的具体用法?C# ExchangeService.FindItems怎么用?C# ExchangeService.FindItems使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ExchangeService的用法示例。


在下文中一共展示了ExchangeService.FindItems方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: FindIncompleteTask

        static IEnumerable<Microsoft.Exchange.WebServices.Data.Task> FindIncompleteTask(ExchangeService service)
        {
            // Specify the folder to search, and limit the properties returned in the result.
            TasksFolder tasksfolder = TasksFolder.Bind(service,
                                                       WellKnownFolderName.Tasks,
                                                       new PropertySet(BasePropertySet.IdOnly, FolderSchema.TotalCount));

            // Set the number of items to the smaller of the number of items in the Contacts folder or 1000.
            int numItems = tasksfolder.TotalCount < 1000 ? tasksfolder.TotalCount : 1000;

            // Instantiate the item view with the number of items to retrieve from the contacts folder.
            ItemView view = new ItemView(numItems);

            // To keep the request smaller, send only the display name.
            view.PropertySet = new PropertySet(BasePropertySet.IdOnly, TaskSchema.Subject, TaskSchema.Status, TaskSchema.StartDate);

            var filter = new SearchFilter.IsGreaterThan(TaskSchema.DateTimeCreated, DateTime.Now.AddYears(-10));

            // Retrieve the items in the Tasks folder with the properties you selected.
            FindItemsResults<Microsoft.Exchange.WebServices.Data.Item> taskItems = service.FindItems(WellKnownFolderName.Tasks, filter, view);

            // If the subject of the task matches only one item, return that task item.
            var results = new List<Microsoft.Exchange.WebServices.Data.Task>();
            foreach (var task in taskItems)
            {
                var result = new Microsoft.Exchange.WebServices.Data.Task(service);
                result = task as Microsoft.Exchange.WebServices.Data.Task;
                results.Add(result);
            }
            return results;
        }
开发者ID:ashuetawah,项目名称:O365-ASPNETMVC-Start,代码行数:31,代码来源:EWSOperations.cs

示例2: Main

        static void Main(string[] args)
        {
            var service = new ExchangeService();
            service.Credentials = new NetworkCredential("your mail address", "your password");

            try
            {
                service.Url = new Uri("http://exchange01/ews/exchange.asmx");
            }
            catch (AutodiscoverRemoteException ex)
            {
                Console.WriteLine(ex.Message);
            }

            FolderId inboxId = new FolderId(WellKnownFolderName.Inbox, "<<e-mail address>>");
            var findResults = service.FindItems(inboxId, new ItemView(10));

            foreach (var message in findResults.Items)
            {

                var msg = EmailMessage.Bind(service, message.Id, new PropertySet(BasePropertySet.IdOnly, ItemSchema.Attachments));

                foreach (Attachment attachment in msg.Attachments)
                {
                    if (attachment is FileAttachment)
                    {
                        FileAttachment fileAttachment = attachment as FileAttachment;

                        // Load the file attachment into memory and print out its file name.
                        fileAttachment.Load();
                        var filename = fileAttachment.Name;
                        bool b;
                        b = filename.Contains(".csv");

                        if (b == true)
                        {
                            bool a;
                            a = filename.Contains("meteo");
                            if (a == true)
                            {
                                var theStream = new FileStream("C:\\data\\attachments\\" + fileAttachment.Name, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                                fileAttachment.Load(theStream);
                                theStream.Close();
                                theStream.Dispose();

                            }
                        }
                    }
                    else // Attachment is an item attachment.
                    {
                        // Load attachment into memory and write out the subject.
                        ItemAttachment itemAttachment = attachment as ItemAttachment;
                        itemAttachment.Load();
                    }

                }

            }
        }
开发者ID:jacqinthebox,项目名称:MailStripper,代码行数:59,代码来源:Program.cs

示例3: actualizarRevisionDirectivaE

        public string actualizarRevisionDirectivaE(string asunto, string fechaInicio, string fechaLimite, string cuerpoTarea, string ubicacion)
        {
            string error = "";
            try
            {
                ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
                service.UseDefaultCredentials = true;

                service.Credentials = new WebCredentials("xxxxxxxxxxxx", "xxxxx", "xxxx");//@uanl.mx
                service.AutodiscoverUrl("xxxxxxxxxxxxxxxxx");

                string querystring = "Subject:'"+asunto +"'";
                ItemView view = new ItemView(1);

                FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Calendar, querystring, view);// <<--- Esta parte no la se pasar a VB
                if (results.TotalCount > 0)
                {
                    if (results.Items[0] is Appointment) //if is an appointment, could be other different than appointment
                    {
                        Appointment appointment = results.Items[0] as Appointment; //<<--- Esta parte no la se pasar a VB

                        if (appointment.MeetingRequestWasSent)//if was send I will update the meeting
                        {

                            appointment.Start = Convert.ToDateTime(fechaInicio);
                            appointment.End = Convert.ToDateTime(fechaLimite);
                            appointment.Body = cuerpoTarea;
                            appointment.Location = ubicacion;
                            appointment.Update(ConflictResolutionMode.AutoResolve);
                        }
                        else//if not, i will modify and sent it
                        {
                            appointment.Start = Convert.ToDateTime(fechaInicio);
                            appointment.End = Convert.ToDateTime(fechaLimite);
                            appointment.Body = cuerpoTarea;
                            appointment.Location = ubicacion;
                            appointment.Save(SendInvitationsMode.SendOnlyToAll);
                        }
                    }
                }
                else
                {
                    error = "Wasn't found it's appointment";
                    return error;
                }
                return error;
            }
            catch
            {
                return error = "an error happend";
            }
        }
开发者ID:jhona22baz,项目名称:Calendar_and_PdfCount,代码行数:52,代码来源:AppointmentClass.cs

示例4: Main

        static void Main(string[] args)
        {
            ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
            var service = new ExchangeService(ExchangeVersion.Exchange2010_SP2)
            {
                Credentials = new WebCredentials("solar_hydro_one", "Summer270"),
                //TraceEnabled = true,
                //TraceFlags = TraceFlags.All
            };

            service.AutodiscoverUrl("[email protected]", RedirectionUrlValidationCallback);

            var rootfolder = Folder.Bind(service, WellKnownFolderName.MsgFolderRoot);
            rootfolder.Load();

            var fid =
                rootfolder.FindFolders(new FolderView(3))
                    .Where(folder => folder.DisplayName == "Backup")
                    .Select(folder => folder.Id).SingleOrDefault();
            var dbContext = new HydroOneMeterDataContext();

            var emailItems = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));
            foreach (var eItem in emailItems)
            {
                if (eItem.Subject.Contains("Hydro One Meter Data") && eItem.HasAttachments && eItem is EmailMessage)
                {
                    foreach (var fileAttachment in (EmailMessage.Bind(service, eItem.Id, new PropertySet(BasePropertySet.IdOnly, ItemSchema.Attachments))).Attachments.OfType<FileAttachment>().Select(attachment => attachment as FileAttachment))
                    {
                        fileAttachment.Load();
                        Console.WriteLine("Attachment name: " + fileAttachment.Name);

                        var hydroOneData = ProcessData(fileAttachment.Content);

                        if (hydroOneData.Any())
                        {
                            Console.WriteLine("Inserting " + hydroOneData.Count + " rows");

                            dbContext.HydroOneMeters.InsertAllOnSubmit(hydroOneData);
                        }
                    }

                }

                eItem.Move(fid);

            }

            dbContext.SubmitChanges();
            Console.WriteLine("Done ... press any key to exit");
            //Console.ReadKey();
        }
开发者ID:Transcanada-TRPS,项目名称:TBOT,代码行数:51,代码来源:HydroOneMeterParser.cs

示例5: accessShared

    public void accessShared()
    {
        ServicePointManager.ServerCertificateValidationCallback = m_UrlBack.CertificateValidationCallBack;

            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);

            // Get the information of the account.
            service.Credentials = new WebCredentials(EMAIL_ACCOUNT, EMAIL_PWD);

            // Set the url of server.
            if (!AutodiscoverUrl(service, EMAIL_ACCOUNT))
            {
                return;
            }

            var mb = new Mailbox(SHARED_MAILBOX);

            var fid1 = new FolderId(WellKnownFolderName.Inbox, mb);

            // Add a search filter that searches on the body or subject.
            List<SearchFilter> searchFilterCollection = new List<SearchFilter>();
            searchFilterCollection.Add(new SearchFilter.ContainsSubstring(ItemSchema.Subject, SUBJECT_KEY_WORD));
            SearchFilter searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, searchFilterCollection.ToArray());

            // Create a view with a page size of 10.
            var view = new ItemView(10);

            // Identify the Subject and DateTimeReceived properties to return.
            // Indicate that the base property will be the item identifier
            view.PropertySet = new PropertySet(BasePropertySet.IdOnly, ItemSchema.Subject, ItemSchema.DateTimeReceived);

            // Order the search results by the DateTimeReceived in descending order.
            view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Ascending);

            // Set the traversal to shallow. (Shallow is the default option; other options are Associated and SoftDeleted.)
            view.Traversal = ItemTraversal.Shallow;
            String[] invalidStings = { "\\", ",", ":", "*", "?", "\"", "<", ">", "|" };

            PropertySet itemPorpertySet = new PropertySet(BasePropertySet.FirstClassProperties,
                EmailMessageSchema.MimeContent);

            FindItemsResults<Item> findResults = service.FindItems(fid1, searchFilter, view);
            foreach (Item item in findResults.Items)
            {
                EmailMessage email = EmailMessage.Bind(service, item.Id, new PropertySet(BasePropertySet.IdOnly, ItemSchema.Attachments));
                email.Load(itemPorpertySet);

                string emailBody = email.Body.ToString();
            }
    }
开发者ID:L30Yu,项目名称:OutlookExportSharedEmail,代码行数:50,代码来源:MailCrawler.cs

示例6: RetrieveMailItems

 /// <summary>
 /// This function retuns the mail items for the given folder and for the date
 /// </summary>
 /// <param name="service"></param>
 /// <param name="folderId"></param>
 /// <param name="lastSyncDate"></param>
 /// <returns></returns>
 public FindItemsResults<Item> RetrieveMailItems(ref ExchangeService service, FolderId folderId,
     DateTime lastSyncDate)
 {
     //email view
     var emailView = new ItemView(int.MaxValue) { PropertySet = BasePropertySet.IdOnly };
     //search filter collection
     var searchFilterCollection =
         new SearchFilter.SearchFilterCollection(LogicalOperator.And)
         {
             new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, lastSyncDate)
         };
     //retrieve
     var items = service.FindItems(folderId, searchFilterCollection, emailView);
     return items;
 }
开发者ID:NosDeveloper2,项目名称:RecruitGenie,代码行数:22,代码来源:ExchangeProcessor.cs

示例7: ActualizarRevisionDirectivaCorreosE

        public string ActualizarRevisionDirectivaCorreosE(string asunto, List<string> invitados )
        {
            string error = "";
            try
            {
                ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
                service.UseDefaultCredentials = true;
                service.Credentials = new WebCredentials("xxxxxxxxxxxxx", "xxxx", "xxxx");
                service.AutodiscoverUrl("xxxxxxxxxxxxxxxxxxxx");

                string querystring = "Subject:'" + asunto + "'";
                ItemView view = new ItemView(1);

                FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Calendar, querystring, view);// <<--- Esta parte no la se pasar a VB
                if (results.TotalCount > 0)
                {
                    if (results.Items[0] is Appointment) //if is an appointment, could be other different than appointment
                    {
                        Appointment appointment = results.Items[0] as Appointment; //<<--- Esta parte no la se pasar a VB

                        if (appointment.MeetingRequestWasSent)//if was send I will update the meeting
                        {
                           foreach (string invitado in invitados){
                               appointment.RequiredAttendees.Add(invitado);
                           }
                            appointment.Update(ConflictResolutionMode.AutoResolve);
                        }
                        else//if not, i will modify and sent it
                        {
                            appointment.Save(SendInvitationsMode.SendOnlyToAll);
                        }
                    }
                }
                else
                {
                    error = "Wasn't found it's appointment";
                    return error;
                }
                return error;
            }
            catch (Exception ex)
            {
                return error = ex.Message;
            }
        }
开发者ID:jhona22baz,项目名称:Calendar_and_PdfCount,代码行数:45,代码来源:AppointmentClass.cs

示例8: GetContacts

        public IEnumerable<Kontakt> GetContacts(string userName, string password)
        {
            // Exchange Online is running 2010 sp1
            var service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
            // passing the credentials to the service instance
            service.Credentials = new WebCredentials(userName, password);

            // AutoDiscover is done by redirection to general AutoDiscover Service, so we have to allow this
            service.AutodiscoverUrl(userName, delegate { return true; });

            // Exchange is using an search based API, so let's look for contacts in the user's contact folder...
            var items = service.FindItems(WellKnownFolderName.Contacts, new ItemView(100));
            return items.Cast<Contact>().Select(contact => new Kontakt
                                                               {
                                                                   Vorname = contact.GivenName,
                                                                   Nachname = contact.Surname,
                                                                   Email = contact.EmailAddresses[EmailAddressKey.EmailAddress1].Address
                                                               });
        }
开发者ID:ThorstenHans,项目名称:DotNetRocks,代码行数:19,代码来源:Default.aspx.cs

示例9: Main

        static void Main(string[] args)
        {
            var service = new ExchangeService(ExchangeVersion.Exchange2010);

            // Setting credentials is unnecessary when you connect from a computer that is logged on to the domain.
            service.Credentials = new WebCredentials(Settings.Default.username, Settings.Default.password, Settings.Default.domain);
            // Or use NetworkCredential directly (WebCredentials is a wrapper around NetworkCredential).

            //To set the URL manually, use the following:
            //service.Url = new Uri("https://proliant32.hci.tetra.ppf.cz/EWS/Exchange.asmx");

            //To set the URL by using Autodiscover, use the following:
            service.AutodiscoverUrl("[email protected]");

            FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));
            foreach (Item item in findResults.Items)
            {
                Console.WriteLine(item.Subject);
            }
        }
开发者ID:roman-filip,项目名称:development,代码行数:20,代码来源:Program.cs

示例10: GetExchange2007Email

        /// <summary>
        /// Gets e-mail using Exchange 2007.
        /// </summary>
        /// <returns></returns>
        public static List<OEmailLog> GetExchange2007Email()
        {
            ServicePointManager.ServerCertificateValidationCallback = TrustAllCertificates;

            OApplicationSetting appSetting = OApplicationSetting.Current;
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
            service.Credentials = new NetworkCredential(appSetting.EmailUserName, Security.Decrypt(appSetting.EmailPassword), appSetting.EmailDomain);
            service.Url = new Uri(appSetting.EmailExchangeWebServiceUrl);

            FindItemsResults<Item> findResults =
                service.FindItems(WellKnownFolderName.Inbox, new ItemView(100));

            List<OEmailLog> emailList = new List<OEmailLog>();
            foreach (Item item in findResults.Items)
            {
                EmailMessage emailMessage = item as EmailMessage;

                if (emailMessage != null)
                {
                    emailMessage.Load();
                    OEmailLog emailLog1 = OEmailLog.WriteToEmailLog(emailMessage.From.Address, emailMessage.Subject, emailMessage.Body);
                    //Connection.ExecuteQuery("#database", "INSERT INTO EmailLog (DateTimeReceived, FromRecipient, Subject, EmailBody, ObjectID, IsDeleted, CreatedDateTime, ModifiedDateTime, CreatedUser, ModifiedUser) VALUES ('" + DateTime.Now.ToString() + "', '" + emailMessage.From.Address +
                    //    "', '" + emailMessage.Subject + "', '" + emailMessage.Body + "', newid(), 0, getdate(), getdate(), '*** SYSTEM ***', '*** SYSTEM ***')");
                    //OEmailLog emailLog = TablesLogic.tEmailLog.Load(TablesLogic.tEmailLog.FromRecipient == emailMessage.From.Address & TablesLogic.tEmailLog.Subject == emailMessage.Subject);

                    OEmailLog emailLog = TablesLogic.tEmailLog.Load(emailLog1.ObjectID);
                    if (emailLog != null)
                    {
                        emailList.Add(emailLog1);
                        emailMessage.Delete(DeleteMode.MoveToDeletedItems);
                    }
                    else
                    {
                        string message = emailMessage.From.Address + "<br/>" + emailMessage.Subject + "<br/>" + emailMessage.Body;
                        OMessage.SendMail(appSetting.EmailForAMOSFailure, appSetting.MessageEmailSender, "Received Email Log (CAMPS CCL) Failure on " + DateTime.Now.ToString(), message, true);
                    }
                }
            }

            return emailList;
        }
开发者ID:vinhdoan,项目名称:Angroup.demo,代码行数:45,代码来源:Email.cs

示例11: ConnectToExchange

        public void ConnectToExchange()
        {
            ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);
            ExchangeService es = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
            es.UseDefaultCredentials = true;
            es.Credentials = new WebCredentials("[email protected]", "bulova1");
            es.Url = new Uri("https://mymail.amfam.net/");

            // Query the unread messages
            try
            {
                ItemView view = new ItemView(20);
                FindItemsResults<Item> findResults = es.FindItems(WellKnownFolderName.Inbox, view);

                foreach (EmailMessage m in findResults)
                {
                    if (m.HasAttachments)
                    {
                        foreach (Attachment atmt in m.Attachments)
                        {
                            this.Eatmt = atmt;
                        }

                        // TODO :: Load file name into a database and Load file attachments into a directory
                        updateEAppsTable(m.From.ToString(), m.Subject.ToString(), (DateTime)m.DateTimeReceived, (DateTime)m.DateTimeSent, this.Eatmt);
                    }
                    else
                    {
                        // TODO :: POST to database.
                        updateEAppsTable(m.From.ToString(), m.Subject.ToString(), (DateTime)m.DateTimeReceived, (DateTime)m.DateTimeSent);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }
开发者ID:dallaselopez,项目名称:WorkFlow,代码行数:38,代码来源:GetImapEmail.cs

示例12: GetItems

        private List<Item> GetItems(ExchangeService service, SearchFilter filter, WellKnownFolderName folder, PropertySet propertySet)
        {
            if (service == null)
            {
                return null;
            }

            List<Item> items = new List<Item>();

            if (propertySet == null)
            {
                propertySet = new PropertySet(BasePropertySet.IdOnly);
            }

            const Int32 pageSize = 50;
            ItemView itemView = new ItemView(pageSize);
            itemView.PropertySet = propertySet;

            FindItemsResults<Item> searchResults = null;
            try
            {
                do
                {
                    searchResults = service.FindItems(folder,
                        filter, itemView);
                    items.AddRange(searchResults.Items);

                    itemView.Offset += pageSize;
                } while (searchResults.MoreAvailable);
            }
            catch (Exception ex)
            {
                if (!CheckServerConnection(domain))
                {
                    NotifyDownloadStatus(DownloadStatus.INFORM, "Unable to connect to Exchange server. Please check.");
                }
                else
                {
                    NotifyDownloadStatus(DownloadStatus.INFORM, "The username or password is incorrect. Please try again.");
                }
                return null;
            }
            return items;
        }
开发者ID:thongvo,项目名称:myfiles,代码行数:44,代码来源:ExchangeDownloadController.cs

示例13: GetItems

        private List<Item> GetItems(ExchangeService service, SearchFilter filter, WellKnownFolderName folder, PropertySet propertySet)
        {
            if (service == null)
            {
                return null;
            }

            List<Item> items = new List<Item>();

            if (propertySet == null)
            {
                propertySet = new PropertySet(BasePropertySet.IdOnly);
            }

            const Int32 pageSize = 50;
            ItemView itemView = new ItemView(pageSize);
            itemView.PropertySet = propertySet;

            FindItemsResults<Item> searchResults = null;
            try
            {
                do
                {
                    searchResults = service.FindItems(folder,
                        filter, itemView);
                    items.AddRange(searchResults.Items);

                    itemView.Offset += pageSize;
                } while (searchResults.MoreAvailable);
            }
            catch (Exception ex)
            {
                NotifyDownloadStatus(DownloadStatus.INFORM, ex.Message);
                return null;
            }
            return items;
        }
开发者ID:thongvo,项目名称:myfiles,代码行数:37,代码来源:ExchangeDownloadController.cs

示例14: OnStartAfter

        private void OnStartAfter()
        {
            string sMailBox = System.String.Empty;
            string sMailServerUrl = System.String.Empty;
            string sUser = System.String.Empty;
            string sPassword = System.String.Empty;
            string sDomain = System.String.Empty;
            string sFolderRoot = System.String.Empty;
            int iItemsProccesing = 0;
            int iScanDelay = 0;
            Boolean bFolderDestDomain = false;
            Boolean bDestinationFileFormatLong = false;
            Boolean bProcessingFileToLog = false;

            if (!EventLog.SourceExists(sSource))
                EventLog.CreateEventSource(sSource, sLog);
            sEvent = "Service started";

            EventLog.WriteEntry(sSource, sEvent);


            try
            {
                sMailBox = ConfigurationManager.AppSettings["MailBox"];
                sMailServerUrl = ConfigurationManager.AppSettings["MailServerUrl"];
                sUser = ConfigurationManager.AppSettings["User"];
                sPassword = ConfigurationManager.AppSettings["Password"];
                sDomain = ConfigurationManager.AppSettings["Domain"];
                sFolderRoot = ConfigurationManager.AppSettings["FolderRoot"];
                iItemsProccesing = Convert.ToInt32(ConfigurationManager.AppSettings["ItemsProccesing"]);        // How much emails retrieve to view
                iScanDelay = Convert.ToInt32(ConfigurationManager.AppSettings["ScanDelay"]);                    // Delay between scan Inbox
                bFolderDestDomain = Convert.ToBoolean(ConfigurationManager.AppSettings["FolderDestinationNameWithDomain"]);
                bDestinationFileFormatLong = Convert.ToBoolean(ConfigurationManager.AppSettings["DestinationFileFormatLong"]); //
                bProcessingFileToLog = Convert.ToBoolean(ConfigurationManager.AppSettings["ProcessingFileToLog"]); //
                
                sEvent =    "MailBox=" + sMailBox + "\n" +
                            "MailServerUrl=" + sMailServerUrl + "\n" +
                            "User=" + sUser + "\n" +
                            "Domain=" + sDomain + "\n" +
                            "FolderRoot=" + sFolderRoot + "\n" +
                            "ItemsProccesing=" + iItemsProccesing + "\n" +
                            "ScanDelay=" + iScanDelay + "\n" +
                            "FolderDestDomain=" + bFolderDestDomain + "\n" +
                            "DestinationFileFormatLong=" + bDestinationFileFormatLong + "\n" +
                            "ProcessingFileToLog=" + bProcessingFileToLog;

                EventLog.WriteEntry(sSource, sEvent);
           
           
            }
            catch (Exception e)
            {
                EventLog.WriteEntry(sSource, e.Message, EventLogEntryType.Warning, 234);
            }

            ////////////////////;
            //
            Boolean bItemDelete = false;
            string sFilePath = System.String.Empty;



            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
            ServicePointManager.ServerCertificateValidationCallback = (obj, certificate, chain, errors) => true;

            service.Credentials = new System.Net.NetworkCredential(sUser, sPassword, sDomain);

            Uri uriMailServerUrl = new Uri(sMailServerUrl);
            service.Url = uriMailServerUrl;

            FolderId InboxId = new FolderId(WellKnownFolderName.Inbox, sMailBox);
            FindItemsResults<Item> findResults = null;

            while (true)
            {

                try
                {

                    findResults = service.FindItems(InboxId, new ItemView(iItemsProccesing));
                }

                catch (Exception e)
                {
                    sEvent = "Exchange Server:" +e.Source + ":" + e.Message;
                    EventLog.WriteEntry(sSource, sEvent, EventLogEntryType.Warning, 234);                  
                }

                if (findResults != null)
                {

                    foreach (Item message in findResults.Items)
                    {
                        bItemDelete = true;
                        if (message.HasAttachments)
                        {
                            EmailMessage emailMessage = EmailMessage.Bind(service, message.Id, new PropertySet(BasePropertySet.IdOnly, ItemSchema.Attachments));
#if DEBUG
                            sEvent  = "Debug event Subject: " + message.Subject + " Date: " + message.DateTimeReceived;
                            EventLog.WriteEntry(sSource, sEvent );
//.........这里部分代码省略.........
开发者ID:hadida,项目名称:AttachmentsDownloader,代码行数:101,代码来源:Service1.cs

示例15: GetItems

        private List<Item> GetItems(ExchangeService service, SearchFilter filter, WellKnownFolderName folder, PropertySet propertySet)
        {
            if (service == null)
            {
                return null;
            }

            List<Item> items = new List<Item>();

            if (propertySet == null)
            {
                propertySet = new PropertySet(BasePropertySet.IdOnly);
            }

            const Int32 pageSize = 50;
            ItemView itemView = new ItemView(pageSize);
            itemView.PropertySet = propertySet;

            FindItemsResults<Item> searchResults = null;
            try
            {
                do
                {
                    searchResults = service.FindItems(folder,
                        filter, itemView);
                    items.AddRange(searchResults.Items);

                    itemView.Offset += pageSize;
                } while (searchResults.MoreAvailable);
            }
            catch (Exception ex)
            {
                if (!CheckServerConnection(domain))
                {
                    NotifyDownloadStatus(DownloadStatus.INFORM, CMController.Properties.Resources.unconnect_exchange_server);
                    return null;
                }
                else
                {
                    NotifyDownloadStatus(DownloadStatus.INFORM, CMController.Properties.Resources.wrong_username_password);
                    return null;
                }
            }
            return items;
        }
开发者ID:thongvo,项目名称:myfiles,代码行数:45,代码来源:ExchangeDownloadController.cs


注:本文中的ExchangeService.FindItems方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。