C# Gmail のメールを IMAP で受信する
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 サーバーに対しても同様に接続できます。