Получить почту из папки «Входящие» - EWS - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу получить доступ к электронной почте в папке с именем «ITServiceDesk» в моем почтовом ящике обмена.

Я могу получить доступ к папке, но не могу понять, как читать почту в этой папке.

Я получаю доступ к папке здесь:

            var view = new FolderView(100);
            view.Traversal = FolderTraversal.Deep;
            var fileview = new ItemView(100);
            var filter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "ITServiceDesk");

            // Read 100 mails
            foreach (var item in _service.FindFolders(WellKnownFolderName.Inbox, filter, view))
            {
                MessageBox.Show(item.DisplayName);
                foreach (EmailMessage email in _service.FindItems(WellKnownFolderName.Inbox, filter, fileview))
                {
                    email.Load(new PropertySet(EmailMessageSchema.ConversationTopic, ItemSchema.Attachments,
                        ItemSchema.TextBody));
                    MessageBox.Show(email.ConversationTopic);
                    MessageBox.Show(email.TextBody);
                }
            }

Ничего не происходит, когда я попадаю во второй цикл foreach.Окно сообщения показывает, что оно может найти папку, так как item.displayname является правильным.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Если вы находите папку с вашим кодом, просто вызовите метод findItem для возвращаемого объекта Folder, например,

                foreach (var Folder in _service.FindFolders(WellKnownFolderName.Inbox, filter, view))
            {                   
                MessageBox.Show(Folder.DisplayName);

                foreach (EmailMessage email in Folder.FindItems(fileview))
                {
                    email.Load(new PropertySet(EmailMessageSchema.ConversationTopic, ItemSchema.Attachments,
                        ItemSchema.TextBody));
                    MessageBox.Show(email.ConversationTopic);
                    MessageBox.Show(email.TextBody);
                }
            }
0 голосов
/ 14 февраля 2019

Вот пример с моего сайта:

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

foreach ( Item item in findResults.Items )
   Console.WriteLine( item.Subject );

См. C #: получение всех сообщений электронной почты из Exchange с использованием веб-служб Exchange

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...