メッセージを一覧表示する
名前空間: 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 つあります。
- アプリにアプリケーションのアクセス許可がある場合。または
- あるユーザーからアプリに適切な代理アクセス許可が与えられ、別のユーザーがそのユーザーとメール フォルダーを共有しているか、そのユーザーに代理アクセスを付与している場合。 詳細と例を参照してください。
この API は、次の国内クラウド展開で使用できます。
グローバル サービス | 米国政府機関 L4 | 米国政府機関 L5 (DOD) | 21Vianet が運営する中国 |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
アクセス許可
この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。
アクセス許可の種類 | 最小特権アクセス許可 | より高い特権のアクセス許可 |
---|---|---|
委任 (職場または学校のアカウント) | Mail.ReadBasic | Mail.ReadWrite、Mail.Read |
委任 (個人用 Microsoft アカウント) | Mail.ReadBasic | Mail.ReadWrite、Mail.Read |
アプリケーション | Mail.ReadBasic.All | Mail.ReadWrite、Mail.Read |
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
を使用してメッセージを取得する場合、次の方法でプロパティを指定します。
-
$orderby
に表示されるプロパティは、$filter
にも表示される必要があります。 -
$orderby
に表示されるプロパティは、$filter
と同じ順序です。 -
$orderby
に存在するプロパティは、存在しないプロパティの前に$filter
に表示されます。
これを実行しない場合、次のエラーが発生する可能性があります。
- エラー コード:
InefficientFilter
- エラー メッセージ:
The restriction or sort order is too complex for this operation.
要求ヘッダー
名前 | 種類 | 説明 |
---|---|---|
Authorization | string | ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。 |
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"
}
}
}
]
}