您可能想查看我们的Rebex Mail component。它包括 IMAP、SMTP、POP3 协议和 S/MIME 解析器。
POP3 没有“未读”消息的概念,也没有搜索匹配特定条件的消息。 POP3 只是返回您收件箱中的所有邮件。
使用IMAP,您可以指示 IMAP 服务器向您发送未读消息、自指定时间后到达的消息、来自特定用户的消息等。您不必将其全部下载到客户端并在那里进行过滤.
以下代码显示了如何使用 Rebex.Net.Imap 类从 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();
以下是组合多个搜索条件的示例。这将返回去年大于 100KB 的消息。
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下载试用版