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

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
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
Спасибо
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 261
Благодарностей
679
Баллы
113
Добрый вечер форум.
Забуксовал на задачке. Есть список электронных адресов которые по крону необходимо опрашивать на поступления писем от списка отправителей
Подключение, сокеты, аутентификация, получение количества писем, общего количества и непрочитанных - все работает
Но вот перебрать в цикле 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

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 261
Благодарностей
679
Баллы
113

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
А что в ответе query приходит?

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

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
.
 

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
Разобрался, запрос не правильно построил
так правильно

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 А нет. не правильно
Ладно, утром сделаю
 
Последнее редактирование:

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 261
Благодарностей
679
Баллы
113
Разобрался, запрос не правильно построил
так правильно

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

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
  • Спасибо
Реакции: Sherminator

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