Rebex Mail コンポーネントを確認してください。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();
複数の検索条件を組み合わせた例を次に示します。これにより、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からダウンロードできます。