Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
 Аватар для siriusED
32 / 31 / 13
Регистрация: 20.05.2010
Сообщений: 705

Не работает фильтр при поиске письма (библиотека ImapX)

15.07.2014, 21:57. Показов 3193. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Короче не могу понять почему не работает фильтр поиска письма...

C#
1
2
3
4
5
6
7
8
9
10
11
            ImapClient client = new ImapClient(liveImap, liveImapPort, true);
            bool res = client.Connect();
            bool res2 = client.Login(user, password);
            ImapX.Folder folder = client.Folders.Junk;
 
 
            string sub = "Mail subject";
 
            //ImapX.Message[] messages = folder.Search("CHARSET UTF-8 SUBJECT {" + Encoding.UTF8.GetByteCount(sub) + "}\r\n" + sub); // Так тоже пробовал...
            //ImapX.Message[] messages = folder.Search("SUBJECT \"" + sub + "\"") //И так пробовал...
            ImapX.Message[] messages = folder.Search("SUBJECT " + sub)
Добавлено через 10 минут
P.S. пишу под live mail(outlook.com)...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2014, 21:57
Ответы с готовыми решениями:

Автофильтр не работает при поиске в промежутке между десятичными дробями
Добрый день! Подскажите, пожалуйста, решение следующей проблем. Столбец данных подвергается фильтрации следующим образом: Dim MErr, N...

Отправка письма большому кол-ву адресатов в одном письма(код почему-то не верно работает)
Добрый вечер! Имеется готовый макрос для отправки файла, который перед этим выгружает в определенную папку файл.Подогнал всё под себя....

Не работает фильтр при закрытой второй форме
Последняя вещь не получается у меня в БД библиотека.. на форме в свободном поле нужно ввести фамилию и если эта фамилия присутствует в...

4
41 / 33 / 24
Регистрация: 09.06.2012
Сообщений: 144
16.07.2014, 16:33
Возможно следует скачать исходники и поглядеть на них =)
Сам пользуюсь библиотекой, однако по заголовку не искал. Вот что там внутри творится:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        public static readonly Regex FolderParseRex = new Regex(@".*\((\\.*)+\)\s[""]?(.|[NIL]{3})[""]?\s[""]?([^""]*)[""]?", RegexOptions.IgnoreCase);
 
        public static readonly Regex ExistsRex = new Regex(@"\* (\d{1,}) EXISTS");
        public static readonly Regex RecentRex = new Regex(@"\* (\d{1,}) RECENT");
        public static readonly Regex UnseenRex = new Regex(@"\* (\d{1,}) UNSEEN");
        public static readonly Regex UIdValidityRex = new Regex(@"UIDVALIDITY (\d{1,})");
        public static readonly Regex UIdNextRex = new Regex(@"UIDNEXT (\d{1,})");
        public static readonly Regex CopyUIdRex = new Regex(@"COPYUID (^\s*) (\d{1,}) (\d{1,})");
        public static readonly Regex StatusRex = new Regex(@"(\w+)\s(\d+)");
 
        public static readonly Regex PermanentFlagsRex = new Regex(@"\* OK \[PERMANENTFLAGS \((.*)\)\]");
        public static readonly Regex SearchRex = new Regex(@"\* SEARCH ([\d\s]+)");
 
        public static readonly Regex HeaderRex = new Regex(@"BODY\[HEADER(\.FIELDS.*?)?\] \{\d+\}$");
        public static readonly Regex HeaderParseRex = new Regex(@"^(\w.{1,}?):[\s]?(.{0,})");
 
        public static readonly Regex BodyStructRex = new Regex(@"BODYSTRUCTURE (\(.+\))");
        public static readonly Regex SizeRex = new Regex(@"RFC822.SIZE (\d+)");
        public static readonly Regex FlagsRex = new Regex(@"FLAGS \((.*?)\)");
        public static readonly Regex InternalDateRex = new Regex("INTERNALDATE \"(.+?)\"");
 
        public static readonly Regex IdleResponseRex = new Regex(@"\[*]? (\d{1,}) (\w+)");
 
        #region Encoding/Decoding
 
        public static readonly Regex UTF7EncodeRex = new Regex("[^ -~]*");
        public static readonly Regex UTF7DecodeRex = new Regex(@"&[\w|,|\+]*-");
        public static readonly Regex StringEncodingRex = new Regex(@"[=]?\?(?<charset>.*?)\?(?<encoding>[qQbB])\?(?<value>.*?)\?=\s?");
Как можно заметить там используется Regex, еще тут видны ключевые слова, можно с ними поколдовать =)
0
 Аватар для siriusED
32 / 31 / 13
Регистрация: 20.05.2010
Сообщений: 705
18.07.2014, 02:55  [ТС]
SmashDream, Да я что то пробовал искать, но ничерта так и не нашел... А кусок кода который вы показали похоже отвечает за Encoding/Decoding полученного SSL ответа, тут нету ключевых слов во обще...

Надо будет завтра попробовать скачать все и во всех файлах попробовать найти по ключевых словах которые заявленные в документации... А то вижу где то в либе жосткий косяк, ибо ну ни как не работает поиск...
0
pavel_azanov
21.07.2014, 13:30
Лучший ответ Сообщение было отмечено siriusED как решение

Решение

Добрый день,

все вопросы по ImapX можно писать напрямую на официальный форум или на info@imapx.org. Можно писать на русском.

По поводу поиска сообщений по теме письма:

Если тема письма не содержит unicode символов:

C#
1
2
string sub = "Mail subject";
var messages = client.Folders.Junk.Search(string.Format("SUBJECT \"{0}\"", sub));
Если есть unicode символы, то:

C#
1
2
string sub = "Mail subject";
var messages = client.Folders.Junk.Search("CHARSET UTF-8 SUBJECT {" + Encoding.UTF8.GetByteCount(sub) + "}\r\n" + sub);
Код протестирован с ящиком на outlook.com (imap-mail.outlook.com), работает без проблем.

В Вашем случае:
  • Проверьте есть ли в папке Junk письма с темой где есть искомое слово.
  • Запишите лог работы клиента как это описано в документации. и отправьте его на info@imapx.org
  • Отпишите мне в Skype (pavel_azanov), могу помочь протестировать.


--Павел
 Аватар для siriusED
32 / 31 / 13
Регистрация: 20.05.2010
Сообщений: 705
24.07.2014, 00:19  [ТС]
pavel_azanov, Занят был чуток, во общем сейчас вот проверил ваш код, ну в принцепе я так и писал по документации, но похоже проблема в том что я ищу письмо в спаме, и оно по ходу помечено как плохое письмо в их системе "SmartScreen", возможно именно по этому не ишет.. Ибо в папке 'Inbox' код работает даже лучше чем нормально...

Добавлено через 13 минут
Короче попробовал перекинуть это письмо в папку 'Inbox' - нашло сразу... Перекинул обратно в 'Junk' опять нашло...
А вот еще одно письмо от этого сайта которое я не трогал и оно так и лежит в 'Junk' - не ищет хоть убей... Так что по ходу проблема именно с этим сайтом, так что короче черт с ним реализую через загрузку всех писем и поиск в уже загруженных по сабжекту... Чуток придется дольше подождать но это на самом деле для работы программы не кретично... Ну а код был рабочий с самого начала... Просто времени не хватило проверить на других письмах в спаме его.
За инфу спасибо в любом случае..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.07.2014, 00:19
Помогаю со студенческими работами здесь

Не работает фильтр по цене при навигации по слоям
Добрый день! Помогите, пожалуйста, разобраться! Вывожу виджеты фильтра по цене и два виджета навигации по слоям (два атрибута товара). При...

Расширенный фильтр. Не работает при нескольких критериях отрицания
Добрый вечер, Вопрос срочный, поэтому надеюсь на быстрый ответ. Как при помощи расширенного фильтра исключить из диапазона целый...

Прошу посодействовать в поиске решения поставленной задачи (Плагин вывода статей и фильтр)
Добрый день, Уважаемые форумчане! Ищу знающих людей, которые помогут найти плагин(ы) с возможностью: 1. Вывода статей в один...

При отправке письма тело письма $message не отображается
вот функция атачя $sfile - содержание файла function send($sfile,$filename) { $message = 'attach файил' $boundary...

Импортированная библиотека работает в Netbeans, но потом не работает в сгенерированном JAR
Пожалуйста, помогите разобраться, что происходит и как это исправить: я импортирую библиотеку FreeTTS, в проекте весь код работает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru