C # Imap клиент список производительности электронной почты headerinfo - PullRequest
0 голосов
/ 21 октября 2011

Я работаю над почтовым клиентом imap.
У меня есть функция поиска, которая отлично работает.
Возвращает пользовательский список EmailHeaderInfo.

Этот класс EmailheaderInfo содержит следующие свойства: UID, Тема, От (System.Net.Mail.MailAdress, также содержит отображаемое имя), Дата (Получение), Размер , Флаг (для проверки прочитанного / непрочитанного статуса) и Вложение (для проверки того, имеет ли электронная почта привязанность или нет). Я храню все в этом классе с правильной кодировкой.

В этой функции поиска я использую команду Imap SEARCH , чтобы получить идентификаторы, и с этими идентификаторами Я использую следующую команду FETCH :

UID FETCH "+ uids [i] +" (UID RFC822.SIZE FLAGS BODY.PEEK [HEADER.FIELDS (получено от предметного типа содержимого)])

После каждой выборки я получаю размер и флаг с помощью регулярного выражения и другую информацию с заголовком разбора.

На данный момент для отображения 250 электронных писем требуется 8 сек.

Мне действительно любопытно мнение или предложение других людей о том, как сделать это быстрее.

Обновление:

Я запускаю команду Fetch с набором сообщений (я создал набор сообщений из результата команды SEARCH).

Теперь для перечисления ~ 450 писем требуется 1-2 сек. Наконец-то это действительно быстро.

1 Ответ

1 голос
/ 21 октября 2011

Для начала необходимо проверить информацию о времени возврата сообщений.Как быстро сервер возвращает всю информацию без разбора.Затем вы можете увидеть, сколько времени вы тратите ...

Не по теме примечание: Тема, Из строк состоит, согласно IMAP любая строка может быть представлена ​​как строковый литерал.Таким образом, вы должны быть готовы принять их.Это означает, что команда может расширяться до нескольких строк, вам нужно прочитать больше строк, чтобы получить полные данные ... Строковый литерал RFC 3501 опишет его.

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