Microsoft Exchange Serverは、連絡先、電子メール、カレンダー、スケジュールを管理し、いくつかのコラボレーション機能を提供するプラットフォームです。 MS Exchange Serverを使用すると、サードパーティに依存することなく独自のメールサーバーを展開できます。 MS Exchange Serverには、Webサービスを介して、Web、デスクトップ、またはモバイルアプリケーション内からアクセスすることもできます。したがって、アプリケーションでメーリング操作とカレンダー操作を実行できます。この記事では、Exchange Serverに接続し、C#を使用して電子メールを読む方法を学習します。
- C# Exchange Server API
- MS Exchange Serverに接続します
- EWSを使用してExchange Serverから電子メールを読み取る
- IMAPを使用してExchange Serverから電子メールを読み取る
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に接続するための手順です。
- NetworkCredentialクラスを使用して、ユーザー名、パスワード、ドメインなどの資格情報を設定します。
- EWSClient.GetEWSClient(string, ICredentials)メソッドによって返されるIEWSClientオブジェクトを取得します。
- IEWSClientオブジェクトを使用して、さらに操作を実行します。
次のコードサンプルは、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の詳細を調べることができます。