Вы можете проверить наш Rebex Mail component. Она включает в себя IMAP, SMTP, POP3 протоколы и и S/MIME синтаксического анализатора.
У POP3
нет понятия «непрочитанные» сообщения или поиск сообщений, соответствующих определенным критериям. POP3
просто возвращает все сообщения во входящие.
Используя IMAP
, вы можете указать сервер IMAP отправлять вам только непрочитанные сообщения, сообщения, поступившие с указанного времени, сообщения от конкретного пользователя и т. Д. Вам не нужно загружать все это клиенту и выполнять фильтрацию там.
В следующем коде показано, как загружать непрочитанные сообщения с сервера Imap
с использованием класса Rebex.Net.Imap
.
// create client, connect and log in
Imap client = new Imap();
client.Connect("imap.example.org");
client.Login("username", "password");
// select folder
client.SelectFolder("Inbox");
// get message list - envelope headers
ImapMessageCollection messages = client.Search
(
ImapSearchParameter.HasFlagsNoneOf(ImapMessageFlags.Seen)
);
// display info about each message
Console.WriteLine("UID | From | To | Subject");
foreach (ImapMessageInfo message in messages)
{
Console.WriteLine(
"{0} | {1} | {2} | {3}",
message.UniqueId,
message.From,
message.To,
message.Subject);
}
// disconnect
client.Disconnect();
Ниже приведен пример объединения нескольких критериев поиска. Это вернет сообщения за последний год, превышающие 100 КБ.
ImapMessageCollection messages = client.Search
(
ImapSearchParameter.Arrived(DateTime.Now.AddYears(-1), DateTime.Now),
ImapSearchParameter.Size(1024 * 100, Int32.MaxValue)
);
Вы можете скачать пробную версию с rebex.net/secure-mail.net/download.aspx
https://github.com/jstedfast/MailKit - хороший и активный вариант. – Rory