C#. Работа с почтой через OpenPop

Недавно была задача обработки писем по протоколу. Перекопал кучу компонент, но наконец нашёл подходящую во всех отношениях библиотеку . У одних были проблемы с кодировками, другие «кушали» много ресурсов, третьи ещё чем-то не подошли.

Качать тут:  http://hpop.sourceforge.net/

Привожу код, который, надеюсь, кому-то когда-то поможет :)

 

using (Pop3Client client = new Pop3Client())

{

// Connect to the server

client.Connect(«host», port, false);

 

// Authenticate ourselves towards the server

client.Authenticate(«login», «password»);

 

List<string> msgs = client.GetMessageUids();  //получаем список айдишников писем в почте

 

for (int i = 1; i <= msgs.Count; i++)   //организация цикла по сообщениям в почте

{

 

Message msg = client.GetMessage(i);  // получаем сообщение

 

 

List<MessagePart> mpart = msg.FindAllAttachments();   // находим  ВСЕ приаттаченные файлы

 

string body = «»;

// ищем первую плейнтекст версию в сообщении

MessagePart mpPlain = msg.FindFirstPlainTextVersion();

 

if (mpPlain != null)

{

Encoding enc = mpPlain.BodyEncoding;

body = enc.GetString(mpPlain.Body);     //  получаем текст сообщения

 

 

}

if (mpart.Count > 0)   // если есть аттачменты то …

{

 

foreach (MessagePart attach in mpart)

{

 

// read data from attachment  . допустим у меня в аттачменте текст в ЮТФ8. получу его содержание

string ticket = Encoding.UTF8.GetString(attach.Body);

// что-то делаю с ним

}

Console.WriteLine(«Mail with subject » + msg.Headers.Subject + «  is ready!»);

}

 

}

}

 

Успехов !

VN:F [1.9.13_1145]
Rating: 10.0/10 (1 vote cast)
. Работа с почтой через OpenPop, 10.0 out of 10 based on 1 rating

Читайте также:

Categories: C# Tags: , , ,
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.