C# で Gmail などと IMAP で接続してメールを取得したい場合、送信よりめんどくさいことになるので、ライブラリを使用すると便利です。
そんなわけで、Imapx を使ってみました。
Imapx
http://www.imapx.org/
接続して未読メッセージを参照して、参照後に既読にするかんたんなサンプル。
そんなわけで、Imapx を使ってみました。
Imapx とは
.NET 向けの IMAP ライブラリです。無料で使えますが、Apache License 2.0 (Apache) に準拠しているため、その旨をユーザーに告知する必要があります。Imapx
http://www.imapx.org/
Imapx で Gmail サーバーに接続
前提として Nuget で Imapx をプロジェクトに追加しておきます。接続して未読メッセージを参照して、参照後に既読にするかんたんなサンプル。
using ImapX;
using ImapX.Constants;
using ImapX.Flags;
// Gmail サーバーに SSL ありで接続する。
var client = new ImapClient("smtp.gmail.com", true);
if (client.Connect())
{
if (client.Login("hoge@gmail.com", "password"))
{
// 未読メッセージを取得します。
var folder = client.Folders.Inbox.Search(FolderStatusFields.Unseen);
foreach (var message in folder)
{
var mailBody = message.Body.Text;
message.Flags.Add(MessageFlags.Seen);
}
}
}
他にも、ライブラリは一通りの機能が揃っているため非常に楽です。もちろん、Gmail だけではなく、他の IMAP サーバーに対しても同様に接続できます。