メッセージを一覧表示する

名前空間: microsoft.graph

サインイン中のユーザーのメールボックス内のメッセージを取得します (削除済みアイテムと低優先メール フォルダーを含む)。

ページ サイズとメールボックスのデータに応じ、メールボックスから取得するメッセージは複数の要求を発生します。 ページ サイズの規定値は、10 件のメッセージです。 $top を使用して、1 - 1000 の範囲でページ サイズをカスタマイズします。

操作の応答時間を改善するには、$selectを使用して必要なプロパティを正確に指定します。以下の例 1 を参照してください。 特に大きなページ サイズを使用する必要がある場合は、$select$top の値を微調整します。それぞれが完全な応答ペイロードを持つ数百のメッセージがあるページを返すと、ゲートウェイ タイムアウト (HTTP 504) がトリガーされる可能性があるためです。

メッセージの次のページを取得するには、@odata.nextLinkで返される URL 全体を単に次のメッセージ要求に適用するだけです。 この URL は、最初の要求で指定された全てのクエリ パラメーターを含みます。

応答を操作するために@odata.nextLink URL から$skip 値を抽出しようとしないでください。 この API は$skip 値を使用し、メッセージの種類の項目のページを返すためにユーザーのメールボックス内で確認された全ての項目をカウントし続けます。 そのため、最初の要求の場合も$skip 値がページ サイズより大きくなる可能性があります。 詳細については、アプリで Microsoft Graph データをページングするを参照してください。

現在、この操作によって返されるメッセージの本文は HTML 形式のみです。

別のユーザーのメール フォルダーからアプリがメッセージを取得するシナリオは 2 つあります。

  • アプリにアプリケーションのアクセス許可がある場合。または
  • あるユーザーからアプリに適切な代理アクセス許可が付与され、別のユーザーがそのユーザーとメール フォルダーを共有しているか、そのユーザーに代理アクセスを付与している場合。詳細と例を参照してください。

この操作には Microsoft Teams チャット メッセージが応答に含まれるという 既知の問題に注意してください。

アクセス許可

この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント) Mail.ReadBasic, Mail.Read, Mail.ReadWrite
委任 (個人用 Microsoft アカウント) Mail.ReadBasic, Mail.Read, Mail.ReadWrite
アプリケーション Mail.ReadBasic.All, Mail.Read, Mail.ReadWrite

HTTP 要求

ユーザーのメールボックス内のすべてのメッセージを取得する

GET /me/messages
GET /users/{id | userPrincipalName}/messages

ユーザーのメールボックス内の特定のフォルダーにあるメッセージを取得する

GET /me/mailFolders/{id}/messages
GET /users/{id | userPrincipalName}/mailFolders/{id}/messages

オプションのクエリ パラメーター

このメソッドは、応答をカスタマイズするための OData クエリ パラメーターをサポートします。

同じクエリで filter と orderby を使用する

同じクエリで $filter$orderby を使用してメッセージを取得する場合、次の方法でプロパティを指定します。

  1. $orderby に表示されるプロパティは、$filter にも表示される必要があります。
  2. $orderby に表示されるプロパティは、$filter と同じ順序です。
  3. $orderby に存在するプロパティは、存在しないプロパティの前に $filter に表示されます。

これを実行しない場合、次のエラーが発生する可能性があります。

  • エラー コード: InefficientFilter
  • エラー メッセージ: The restriction or sort order is too complex for this operation.

要求ヘッダー

名前 説明
Authorization string ベアラー {トークン}。必須。
Prefer: outlook.body-content-type string body プロパティと uniqueBody プロパティが返されるときの形式です。 値は、"text" または "html" になります。 ヘッダーが指定されていない場合は、body プロパティと uniqueBody プロパティは HTML 形式で返されます。 省略可能。

要求本文

このメソッドには、要求本文を指定しません。

応答

成功した場合、このメソッドは 200 OK 応答コードと、応答本文で Message オブジェクトのコレクションを返します。

例 1: すべてのメッセージを一覧表示する

要求

この例では、サインイン済みのユーザーのメールボックスで、既定の上位 10 件のメッセージを取得します。 $select を使用し、応答にメッセージごとのプロパティのサブセットを返します。

GET https://graph.microsoft.com/v1.0/me/messages?$select=sender,subject

応答

応答の例を次に示します。 メッセージの次のページを取得するには、@odata.nextLinkで返されるURL を後続の Get 要求に適用します。

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('bb8775a4-4d8c-42cf-a1d4-4d58c2bb668f')/messages(sender,subject)",
    "value": [
        {
            "@odata.etag": "W/\"CQAAABYAAADHcgC8Hl9tRZ/hc1wEUs1TAAAwR4Hg\"",
            "id": "AAMkAGUAAAwTW09AAA=",
            "subject": "You have late tasks!",
            "sender": {
                "emailAddress": {
                    "name": "Microsoft Planner",
                    "address": "noreply@Planner.Office365.com"
                }
            }
        }
    ]
}