EWS マネージ API を使用して EWS と通信するHow to: Communicate with EWS by using the EWS Managed API

Exchange で EWS マネージ API を使用して EWS と通信する方法について説明します。Find information about how to use the EWS Managed API to communicate with EWS in Exchange.

EWS マネージ API の ExchangeService クラスには、ユーザー資格情報の設定、EWS エンドポイントの特定、SOAP メッセージの送受信、および EWS と通信するためのバインドの構成に使用するメソッドとプロパティが含まれます。The ExchangeServicehttp://msdn.microsoft.com/en-us/library/ microsoft.exchange.webservices.data.exchangeservice(v=exchg.80).aspx class in the EWS Managed API contains the methods and properties that you use to set user credentials, identify the EWS endpoint, send and receive SOAP messages, and configure the binding to communicate with EWS. Before you can use the EWS Managed API to perform any task, you have to create an instance of the ExchangeService class and bind it to EWS. EWS マネージ API を使用して何らかのタスクを実行するためには、ExchangeService クラスのインスタンスを作成して、それを EWS にバインドしておく必要があります。Before you can use the EWS Managed API to perform any task, you have to create an instance of the ExchangeService class and bind it to EWS.

ユーザー資格情報と EWS エンドポイントを指定して ExchangeService オブジェクトをセットアップすると、ExchangeService オブジェクトを参照するメールボックス オブジェクトは、次のメソッド タイプを使用して EWS と通信できるようになります。After you set up an T:Microsoft.Exchange.WebServices.Data.ExchangeService object with user credentials and the EWS endpoint, any mailbox object that references the T:Microsoft.Exchange.WebServices.Data.ExchangeService object can use the following method types to communicate with EWS:

  • ExchangeService オブジェクト メソッド — ExchangeService オブジェクトのうち、基本 Object タイプから継承されたのではないすべてのメソッドが EWS の呼び出しを実行します。ExchangeService object methods — All the methods on the ExchangeService object that are not inherited from the base Object type make calls to EWS.

  • Exchange のメールボックス アイテム タイプ メソッドとフォルダー タイプ メソッド。Exchange mailbox item and folder type methods.

表 1. EWS と通信するメールボックス アイテム タイプ メソッドとフォルダー タイプ メソッドTable 1.  Mailbox item and folder type methods that communicate with EWS

メソッドMethod できることWhat it does 呼び出す操作Operations that it calls
LoadLoad
アイテム、添付物、またはユーザー構成オブジェクトのプロパティを取得します。Gets properties on an item, attachment, or user configuration object.
GetItem 操作GetItem operation

GetAttachment 操作GetAttachment Operation

GetUserConfiguration 操作GetUserConfiguration Operation
BindBind
クライアント上の新しいアイテムに、サーバー上の既存のアイテムからの情報を取り込みます。Populates a new item on the client with information from an existing item on the server.
GetItem 操作GetItem operation
SaveSave
クライアント アイテムのコピーをサーバーに保存します。Saves the copy of the client item on the server
UpdateItem 操作UpdateItem operation

UpdateFolder 操作UpdateFolder operation

CreateItem 操作CreateItem operation

CreateFolder 操作CreateFolder operation
UpdateUpdate
クライアント上で加えられた変更に基づいてサーバーを更新します。Updates the server with the changes made on the client.

アイテムおよびフォルダーの場合、Update メソッドは UpdateItem 操作および UpdateFolder 操作を使用します。Updates the server with the changes made on the client. For items and folders, the Update method uses the UpdateItem Operation and the UpdateFolder Operation.
UpdateItem 操作UpdateItem operation

UpdateFolder 操作UpdateFolder operation
DeleteDelete
サーバー上のアイテムを削除します。Deletes an item on the server.

アイテムおよびフォルダーの場合、Delete メソッドは DeleteFolder 操作を使用します。Deletes an item on the server. For items and folders, the Delete method uses the and the DeleteFolder Operation.
DeleteItem 操作DeleteItem Operation

DeleteFolder 操作 DeleteFolder Operation
CopyCopy
サーバー上のアイテムまたはフォルダーのコピーを作成します。Creates a copy of the item or folders on the server.
CopyItem 操作CopyItem operation

CopyFolder 操作CopyFolder Operation
MoveMove
サーバー上のアイテムまたはフォルダーを移動します。Moves items or folders on the server.
MoveItem 操作MoveItem operation

MoveFolder 操作MoveFolder Operation

EWS マネージ API を使用して EWS と通信するにはTo use the EWS Managed API to communicate with EWS

  1. ExchangeService クラスをインスタンス化します。Instantiate the ExchangeService class.

     ExchangeService service = new ExchangeService();
    

    注意

    空のコンストラクターで ExchangeService をインスタンス化すると、既知の最新バージョンの Exchange にバインドされたインスタンスが作成されます。Instantiating ExchangeService with an empty constructor will create an instance that is bound to the latest known version of Exchange. Alternatively, you can target a specific version of Exchange by specifying version as a parameter.ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); あるいは、バージョンをパラメーターとして指定することにより、特定のバージョンの Exchange を対象にすることもできます。Alternatively, you can target a specific version of Exchange by specifying version as a parameter. ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

  2. Exchange サーバーに要求を送信するユーザーの資格情報を設定します。Set the credentials of the user who sends requests to the Exchange server. ドメインにログオンしているコンピューターから EWS に接続する場合は、認証されたユーザーの資格情報を使用して、ExchangeService オブジェクトの UseDefaultCredentials プロパティを true に設定します。Set the credentials of the user who sends requests to the Exchange server. If you want to connect to EWS from a computer that is logged on to the domain, using the credentials of the authenticated user, set the UseDefaultCredentials property on the ExchangeService object to true.

     // Connect by using the default credentials of the authenticated user.
     service.UseDefaultCredentials = true;
    

    既定ユーザーの資格情報を使用して接続したくない場合は、ExchangeService オブジェクトの Credentials プロパティを設定することにより、異なるユーザーの資格情報を明示的に指定します。If you do not want to connect by using the default user credentials, set the Credentials property on the ExchangeService object to explicitly specify the credentials of a different user. If you are using Exchange Online or Exchange Online as part of Office 365, you’ll use basic authentication, with just a user name and password. A domain name is required for NTLM authentication. Exchange Online を使用する場合、または Office 365 の一部として Exchange Online を使用する場合は、ユーザー名とパスワードのみによる基本認証を使用することになります。If you are using Exchange Online or Exchange Online as part of Office 365, you'll use basic authentication, with just a user name and password. NTLM 認証にはドメイン名が必要です。A domain name is required for NTLM authentication.

     // Connect by using the credentials of user1 at contoso.com.
     service.Credentials = new WebCredentials("user1@contoso.com", "password");
    

    ユーザーのドメイン名とパスワードを使用して、ユーザーの資格情報を指定することもできます。You can also specify the credentials of the user by using the user's domain name and password.

     // Connect by using the credentials of contoso/user1.
     service.Credentials = new WebCredentials("user1", "password", "contoso");
    

    注意

    UseDefaultCredentials プロパティを true に設定した場合、Credentials プロパティの値は無視されます。If the UseDefaultCredentials property is set to true, the value of the Credentials property is ignored.

  3. EWS エンドポイントの URL を設定します。この URL は、クライアント アクセス サーバー上の exchange.asmx ファイルの位置を示します。Set the URL of the EWS endpoint. This URL locates the exchange.asmx file on Client Access server.

     // Use Autodiscover to set the URL endpoint.
     service.AutodiscoverUrl("user1@contoso.com");
    

    注意

    ExchangeServiceUrl プロパティをハードコーディング値に明示的に設定することもできますが、できれば次の理由で、自動検出サービスを使用することをお勧めします。> 自動検出サービスでは、特定のユーザーのための最適なエンドポイント (そのユーザーのメールボックス サーバーに最も近いエンドポイント) が判別されます。Although you can explicitly set the Url property of the ExchangeService to a hardcoded value, we recommend that you use the Autodiscover service instead, for the following reasons: > Autodiscover determines the best endpoint for a given user (the endpoint that is closest to the user's Mailbox server). > 新しいクライアント アクセス サーバーが配置されると、EWS URL が変わる可能性があります。The EWS URL might change if new Client Access servers are deployed. In this scenario, using Autodiscover means no code changes are necessary. このシナリオの場合、自動検出を使用するとコード変更が必要なくなります。The EWS URL might change if new Client Access servers are deployed. In this scenario, using Autodiscover means no code changes are necessary. > URL を明示的に設定するか、または AutodiscoverUrl を呼び出す必要がありますが、両方を行うべきではありません。You should either set the URL explicitly or call AutodiscoverUrl, but you should not do both.

関連項目See also