Получить почту Тема сообщения в .net по теме - PullRequest
0 голосов
/ 05 ноября 2018

В настоящее время я использую библиотеку openPOP для получения писем в моем приложении .net. Но кажется, что в библиотеке openPOP нет никакого способа искать почту по теме, кроме как извлекать все сообщения и искать из найденных сообщений. Но такая операция занимает много времени.

Ниже приведен мой код для получения почты на основе критерия поиска "HeaderVal":

 HeaderVal = "Case detail LEA/ED/05111802";
 var client = new Pop3Client();

 using (Pop3Client client2 = new Pop3Client())
 {
     // Connect to the server
     client.Connect("pop.gmail.com", 995, true);

     client.Authenticate("recent:" + userName, password, AuthenticationMethod.UsernameAndPassword);
     //var count = client.GetMessageCount();

     // Get the number of messages in the inbox
     int messageCount = client.GetMessageCount();

     //  MessageHeader messageHeader =;
     // We want to download all messages
     List<Message> allMessages = new List<Message>(messageCount);

     //var requiredMessage = allMessages.Where(x=>x.Headers == HeaderVal).

     for (int i = messageCount; i > 0; i--)
     {
         allMessages.Add(client.GetMessage(i));
     }

     var RequiredMessage = allMessages.Where(x=>x.Headers.Subject.ToString().ToLower().Trim() == HeaderVal.ToLower().Trim());
}

Мне также нужно получить ответы, сделанные на это письмо, которые я не могу получить. Пожалуйста, предложите, если это можно сделать с помощью openPOP или любой другой библиотеки, которая решает эту проблему.

1 Ответ

0 голосов
/ 05 ноября 2018

POP3 не имеет средств поиска. Это очень простой протокол для определения количества существующих сообщений и их загрузки.

Если вы хотите выполнить поиск на сервере, вам потребуется использовать более полнофункциональный протокол, такой как IMAP, ActiveSync или, в зависимости от сервера, пользовательские библиотеки на основе HTTP.

Существует буквально десятки различных IMAP библиотек, которые вы можете использовать.

...