MailKit обработка поиска FromContains С#

  • Автор темы Автор темы DevOps
  • Дата начала Дата начала

DevOps

Client
Регистрация
30.11.2020
Сообщения
497
Реакции
316
Баллы
63
Добрый вечер форум.
Забуксовал на задачке. Есть список электронных адресов которые по крону необходимо опрашивать на поступления писем от списка отправителей
Подключение, сокеты, аутентификация, получение количества писем, общего количества и непрочитанных - все работает
Но вот перебрать в цикле FromContains не удается, точнее удается, но никак не могу понять как ответ "разбить"
C#:
Развернуть Свернуть Копировать
                        foreach(var dodo in lines_contains)
                        {
                            var query = MailKit.Search.SearchQuery.FromContains(dodo);
                        
                            Console.WriteLine(query);

                            if (query!=null)
                            {
                                result_contains = " | " + dodo + result_contains;
                               // Console.WriteLine(result_contains);
                            }
                            else { }
Этот участок кода тестовый, он проверяет и выдает ответ типа - MailKit.Search.TextSearchQuery
Из за этого конструкция
C#:
Развернуть Свернуть Копировать
                            if (query!=null)

                            {

                                result_contains = " | " + dodo + result_contains;

                               // Console.WriteLine(result_contains);

                            }

всегда положительная и я не могу приступить к разработке дальнейшей логики программы
Как выпаршивать ответ - MailKit.Search.TextSearchQuery
Спасибо
 
Добрый вечер форум.
Забуксовал на задачке. Есть список электронных адресов которые по крону необходимо опрашивать на поступления писем от списка отправителей
Подключение, сокеты, аутентификация, получение количества писем, общего количества и непрочитанных - все работает
Но вот перебрать в цикле FromContains не удается, точнее удается, но никак не могу понять как ответ "разбить"
C#:
Развернуть Свернуть Копировать
                        foreach(var dodo in lines_contains)
                        {
                            var query = MailKit.Search.SearchQuery.FromContains(dodo);
                     
                            Console.WriteLine(query);

                            if (query!=null)
                            {
                                result_contains = " | " + dodo + result_contains;
                               // Console.WriteLine(result_contains);
                            }
                            else { }
Этот участок кода тестовый, он проверяет и выдает ответ типа - MailKit.Search.TextSearchQuery
Из за этого конструкция
C#:
Развернуть Свернуть Копировать
                            if (query!=null)

                            {

                                result_contains = " | " + dodo + result_contains;

                               // Console.WriteLine(result_contains);

                            }

всегда положительная и я не могу приступить к разработке дальнейшей логики программы
Как выпаршивать ответ - MailKit.Search.TextSearchQuery
Спасибо
А что в ответе query приходит?

Мб не на null надо проверять а на
!String.IsNullOrEmpty(query );
или
!String.IsNullOrWhiteSpace(query );
 
  • Оценить
Реакции: DevOps
А что в ответе query приходит?

Мб не на null надо проверять а на
!String.IsNullOrEmpty(query );
или
!String.IsNullOrWhiteSpace(query );
Строка ответа query - MailKit.Search.TextSearchQueryТак и в лог и файл попадает именно как указал
 
.
 
Разобрался, запрос не правильно построил
так правильно

C#:
Развернуть Свернуть Копировать
                        foreach(var dodo in lines_contains)
                        {
                            clientAsync.Inbox.Open(FolderAccess.ReadOnly);
                            var query = SearchQuery.FromContains(dodo);
                            var uids = clientAsync.Inbox.Search(query);
                            Console.WriteLine(uids);
                            if (!uids.Any())
                            {
                                result_contains = " | " + dodo + result_contains;
                               Console.WriteLine(result_contains);
                            }
                            else { }
                        }
PS А нет. не правильно
Ладно, утром сделаю
 
Последнее редактирование:
Разобрался, запрос не правильно построил
так правильно

C#:
Развернуть Свернуть Копировать
                        foreach(var dodo in lines_contains)
                        {
                            clientAsync.Inbox.Open(FolderAccess.ReadOnly);
                            var query = SearchQuery.FromContains(dodo);
                            var uids = clientAsync.Inbox.Search(query);
                            Console.WriteLine(uids);
                            if (!uids.Any())
                            {
                                result_contains = " | " + dodo + result_contains;
                               Console.WriteLine(result_contains);
                            }
                            else { }
                        }
А я значит вопрос не правильно понял, ну ладно)
 
  • Оценить
Реакции: DevOps
  • Оценить
Реакции: Sherminator

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)