C# Gmail のメールを IMAP で受信する

Imapx を Nuget から追加する
C# で Gmail などと IMAP で接続してメールを取得したい場合、送信よりめんどくさいことになるので、ライブラリを使用すると便利です。
そんなわけで、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 サーバーに対しても同様に接続できます。

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する