InterIMAP, просмотр почты в формате UNREAD IMAP и загрузка приложений в C # - PullRequest
2 голосов
/ 02 апреля 2010

Мне было интересно, может ли кто-нибудь помочь мне в этом, потому что это сводит меня с ума, пытаясь заставить это работать

Я работал с следом mail.dll от http://www.lesnikowski.com/mail/, который является чрезвычайно фантастическим инструментом, который, к сожалению, я не могу позволить себе быть студентом (даже если его стоимость составляет около 150 евро, он все еще очень дорог для меня: /) и это будет небольшой модуль в моей диссертации, и мой факультет не может позволить себе купить эти вещи для студентов либо: / так или иначе, мне пришлось пойти на бесплатный инструмент (поэтому, пожалуйста, не предлагайте какие-либо не с открытым исходным кодом - поверьте мне, я пытался их ВСЕ) ..

Что ж, я пытаюсь изучить InterIMAP, и в течение нескольких часов пытался составить список непрочитанных писем из моей учетной записи gmail, но, похоже, это не работает. Я могу подключиться очень хорошо, но поиск непрочитанных писем кажется нелегкой задачей. Я пробовал бесчисленное множество подходов, но, похоже, не дает мне непрочитанные письма в моем почтовом ящике (у меня есть куча писем в моем почтовом ящике, и я просто хочу непрочитанные ). Кто-нибудь, пожалуйста, помогите мне? Я пытался заставить это работать целую вечность, но документации довольно не хватает, и каждая моя попытка до сих пор заканчивалась неудачей.

Пожалуйста, помогите !!

Какой-то код, который у меня сейчас есть: `IMAPConfig config = new IMAPConfig (" myhost "," username "," pass ", true, true," ");

        config.CacheFile = "";

        IMAPClient client = null;
        try
        {
            client = new IMAPClient(config, null, 5);
        }
        catch (IMAPException e)
        {
            Console.WriteLine(e.Message);
            return;
        }
        Console.WriteLine(DateTime.Now.ToString());


        IMAPFolder f = client.Folders["INBOX"];
        IMAPSearchResult sResult = f.Search(IMAPSearchQuery.QuickSearchNew()); // <--- Gives me no results even though i do have unread messages!

Ответы [ 2 ]

2 голосов
/ 13 января 2012

Если вы не достигли своей цели, мы идем:

Вы должны кодировать следующим образом:

1-й: внутри вашего класса SearchQuery, например, добавьте новое свойство «непрочитанное». 2-й: Добавить новый метод, который возвращает IMAPSearchQuery. Это будет быстрый поиск непрочитанных писем. Примерно так:

    public static IMAPSearchQuery QuickSearchUnread()
    {
        IMAPSearchQuery query = new IMAPSearchQuery();
        query.unread = true;

        return query;
    }

3td: Внутри вашего класса IMAPFolder у вас есть вызываемый метод, который будет возвращать тип IMAPSearchResult и который получает IMAPSearchQuery в качестве параметра. Этот метод «создает» ваш запрос с помощью командных запросов IMAP (протокол на основе IMAP). К непрочитанному запросу необходимо добавить:

            public IMAPSearchResult Search(IMAPSearchQuery query)
            {
                ...
                if (query.Unread)
                    searchTerms.Add("UNSEEN");
                .
                .
                ...
            }

4-й: вызов метода поиска с помощью нового быстрого поиска:

config.CacheFile = "";

    IMAPClient client = null;
    try
    {
        client = new IMAPClient(config, null, 5);
    }
    catch (IMAPException e)
    {
        Console.WriteLine(e.Message);
        return;
    }
    Console.WriteLine(DateTime.Now.ToString());


    IMAPFolder f = client.Folders["INBOX"];
    IMAPSearchResult sResult = f.Search(IMAPSearchQuery.QuickSearchUnread());

Дайте мне знать о вашем прогрессе. Я надеюсь, что это может быть полезно.

Bye.

1 голос
/ 14 мая 2010

Я, честно говоря, только что закончил тем, что использовал пробную версию Mail.dll, так как interIMAP не работал для меня должным образом и был медленным, потому что по какой-то причине он индексирует электронные письма: s

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