C#を使用してMSExchangeServerからの電子メールを読み取る

Microsoft Exchange Serverは、連絡先、電子メール、カレンダー、スケジュールを管理し、いくつかのコラボレーション機能を提供するプラットフォームです。 MS Exchange Serverを使用すると、サードパーティに依存することなく独自のメールサーバーを展開できます。 MS Exchange Serverには、Webサービスを介して、Web、デスクトップ、またはモバイルアプリケーション内からアクセスすることもできます。したがって、アプリケーションでメーリング操作とカレンダー操作を実行できます。この記事では、Exchange Serverに接続し、C#を使用して電子メールを読む方法を学習します。

C# Exchange Server API-無料ダウンロード

Aspose.Email for .NETは、MS Exchange Serverと連携するための使いやすいAPIを提供します。 Exchange Webサービス(EWS)またはインターネットメッセージアクセスプロトコル(IMAP)を使用してメールサーバーに接続できます。接続すると、数ステップでメールボックス内のアイテムにアクセスできます。 Aspose.Email for .NETは、NuGetまたはダウンロードそのDLLを介してインストールできます。

PM> Install-Package Aspose.Email

C#を使用してExchange Serverに接続する

Aspose.Email for .NETは、Exchange Serverのインスタンスに接続するためのEWSとIMAPの2つの方法を提供します。次のセクションでは、いずれかの方法を使用して接続を確立する方法の手順を示します。

EWS経由でExchange Serverに接続する

以下は、Aspose.Email for .NETを使用してMS Exchange Serverに接続するための手順です。

次のコードサンプルは、C#を使用してEWS経由でExchange Serverに接続する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-email/Aspose.Email-for-.NETにアクセスしてください。
private static IEWSClient GetExchangeEWSClient()
{
    const string mailboxUri = "https://outlook.office365.com/ews/exchange.asmx";
    const string domain = @"";
    const string username = @"username@ASE305.onmicrosoft.com";
    const string password = @"password";
    NetworkCredential credentials = new NetworkCredential(username, password, domain);
    IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
    return client;
}

IMAP経由でExchange Serverに接続する

IMAPを介してExchange Serverに接続するには、サーバーでIMAPサービスが有効になっていることを確認してください。完了したら、以下の手順に従ってExchange Serverに接続します。

  • ImapClientクラスのインスタンスを作成し、そのコンストラクターにホスト、ユーザー名、およびパスワードを提供します。
  • ImapClient.SecurityOptionsプロパティを使用してセキュリティオプションを設定します。
  • ImapClientオブジェクトを使用して、メールボックス内のアイテムにアクセスします。

次のコードサンプルは、C#を使用してIMAP経由でExchange Serverにアクセスする方法を示しています。

// ImapClientクラスを使用してExchange Serverに接続します
ImapClient imapClient = new ImapClient("ex07sp1", "Administrator", "Evaluation1");
imapClient.SecurityOptions = SecurityOptions.Auto;

C#でEWSを使用してExchange Serverから電子メールを読み取る

以下は、EWSを使用してExchange Serverから電子メールメッセージを読み取る手順です。

  • IEWSClientのインスタンスを作成します。
  • IEWSClient.ListMessage(String)メソッドを使用して、電子メールコレクションにアクセスします。
  • 電子メールコレクションをループして、各電子メールメッセージの詳細を取得します。

次のコードサンプルは、C#でExchange Serverから電子メールを読み取る方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-email/Aspose.Email-for-.NETにアクセスしてください。
// 資格情報を指定してExchangeWebServiceClientクラスのインスタンスを作成します
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "UserName", "Password");

// ListMessagesメソッドを呼び出して、受信トレイからのメッセージ情報を一覧表示します
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);

// コレクションをループして、基本情報を表示します
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
    Console.WriteLine("Subject: " + msgInfo.Subject);
    Console.WriteLine("From: " + msgInfo.From.ToString());
    Console.WriteLine("To: " + msgInfo.To.ToString());
    Console.WriteLine("Message ID: " + msgInfo.MessageId);
    Console.WriteLine("Unique URI: " + msgInfo.UniqueUri);
}

IMAPを使用してExchange Serverから電子メールを読み取る

以下は、IMAPを使用してExchange Serverから電子メールを読み取る手順です。

  • ImapClientクラスのインスタンスを作成し、そのコンストラクターにホスト、ユーザー名、およびパスワードを提供します。
  • ImapClient.SecurityOptionsプロパティを使用してセキュリティオプションを設定します。
  • ImapClient.SelectFolder()メソッドを使用して、受信トレイ、送信済みなどのフォルダーを選択します。
  • ImapClient.ListMessages()メソッドを使用して、電子メールコレクションを取得します。
  • 電子メールコレクションをループして、各メッセージにアクセスします。

次のコードサンプルは、IMAPを使用してExchange Serverから電子メールを読み取る方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-email/Aspose.Email-for-.NETにアクセスしてください。
// ImapClientクラスを使用してExchange Serverに接続します
ImapClient imapClient = new ImapClient("ex07sp1", "Administrator", "Evaluation1");
imapClient.SecurityOptions = SecurityOptions.Auto;

// 受信トレイフォルダを選択します
imapClient.SelectFolder(ImapFolderInfo.InBox);

// メッセージのリストを取得する
ImapMessageInfoCollection msgCollection = imapClient.ListMessages();
foreach (ImapMessageInfo msgInfo in msgCollection)
{
    Console.WriteLine(msgInfo.Subject);
}
// サーバーから切断します
imapClient.Dispose();

無料のAPIライセンスを取得する

評価制限なしで無料でAPIを試すことができます。 無料の一時ライセンスを取得今すぐ。

ライブデモ

結論

この記事では、MS Exchange Serverに接続し、C#を使用して電子メールメッセージを読み取る方法を学習しました。さらに、コードサンプルは、EWSおよびIMAPクライアントを使用してExchange Serverにアクセスする方法を示しています。 ドキュメントを使用して、C#EメールAPIの詳細を調べることができます。

関連項目