Pages

2015/12/08

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 サーバーに対しても同様に接続できます。

Related Posts Plugin for WordPress, Blogger...