添付ファイルを追加するAdd attachment

添付ファイルをメッセージに追加する場合に、この API を使用します。Use this API to add an attachment to a message.

添付ファイルは、次の種類のいずれかにできます。An attachment can be one of the following types:

これらの添付ファイル リソースのすべての種類は、attachment リソースから派生します。All these types of attachment resources are derived from the attachment resource.

既存のメッセージの添付ファイルのコレクションに投稿してそのメッセージに添付ファイルを追加したり、作成してすぐ送信されるメッセージに添付ファイルを追加したりすることができます。You can add an attachment to an existing message by posting to its attachments collection, or you can add an attachment to a message that is being created and sent on the fly.

現在、各 REST 要求の合計サイズは 4 MB に制限されているため、追加できる添付ファイルのサイズは 4 MB 未満に制限されます。Since there is currently a limit of 4MB on the total size of each REST request, this limits the size of the attachment you can add to under 4MB.

アクセス許可Permissions

この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

アクセス許可の種類Permission type アクセス許可 (特権の小さいものから大きいものへ)Permissions (from least to most privileged)
委任 (職場または学校のアカウント)Delegated (work or school account) Mail.ReadWriteMail.ReadWrite
委任 (個人用 Microsoft アカウント)Delegated (personal Microsoft account) Mail.ReadWriteMail.ReadWrite
アプリケーションApplication Mail.ReadWriteMail.ReadWrite

HTTP 要求HTTP request

ユーザーのメールボックス内のメッセージの添付ファイル。Attachments for a message in a user's mailbox.

POST /me/messages/{id}/attachments
POST /users/{id | userPrincipalName}/messages/{id}/attachments

ユーザーのメールボックスの最上位レベルの mailFolder に含まれているメッセージの添付ファイル。Attachments for a message contained in a top level mailFolder in a user's mailbox.

POST /me/mailFolders/{id}/messages/{id}/attachments
POST /users/{id | userPrincipalName}/mailFolders/{id}/messages/{id}/attachments

ユーザーのメールボックスの mailFolder の子フォルダーに含まれているメッセージの添付ファイル。次の例は、入れ子のレベルの 1 つを示していますが、メッセージは子の子などに入れることができます。Attachments for a message contained in a child folder of a mailFolder in a user's mailbox. The example below shows one level of nesting, but a message can be located in a child of a child and so on.

POST /me/mailFolders/{id}/childFolders/{id}/.../messages/{id}/attachments/{id}
POST /users/{id | userPrincipalName}/mailFolders/{id}/childFolders/{id}/messages/{id}/attachments/{id}

要求ヘッダーRequest headers

名前Name Type 説明Description
AuthorizationAuthorization stringstring ベアラー {トークン}。必須。Bearer {token}. Required.
Content-TypeContent-Type stringstring エンティティ本文内のデータの性質です。必須。Nature of the data in the body of an entity. Required.

要求本文Request body

要求本文で、Attachment オブジェクトの JSON 表記を指定します。In the request body, supply a JSON representation of Attachment object.

応答Response

成功した場合、このメソッドは 201 Created 応答コードと、応答本文で Attachment オブジェクトを返します。If successful, this method returns 201 Created response code and Attachment object in the response body.

例 (添付ファイル)Example (file attachment)

要求Request

以下は、要求の例です。Here is an example of the request.

POST https://graph.microsoft.com/v1.0/me/messages/AAMkpsDRVK/attachments
Content-type: application/json
Content-length: 142

{
  "@odata.type": "#microsoft.graph.fileAttachment",
  "name": "smile",
  "contentBytes": "base64R0lGODdhEAYEAA7"
}

要求本文で、Attachment オブジェクトの JSON 表記を指定します。In the request body, supply a JSON representation of attachment object.

応答Response

以下は、応答の例です。Here is an example of the response.

HTTP 201 Created
Content-type: application/json
Content-length: 202

{
    "id": "AAMkADNkN2R",
    "lastModifiedDateTime": "2017-01-26T08:48:28Z",
    "name": "smile",
    "contentType": "image/gif",
    "size": 1008,
    "isInline": false,
    "contentId": null,
    "contentLocation": null,
    "contentBytes": "base64R0lGODdhEAYEAA7"
}

SDK サンプルコードSDK sample code


const options = {
    authProvider,
};

const client = Client.init(options);

const attachment = {
  @odata.type: "#microsoft.graph.fileAttachment",
  name: "smile",
  contentBytes: "base64R0lGODdhEAYEAA7"
};

let res = await client.api('/me/messages/AAMkpsDRVK/attachments')
    .post({attachment : attachment});

SDK をプロジェクトに追加し、 authproviderインスタンスを作成する方法の詳細については、 sdk のドキュメントを参照してください。Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.

例 (項目の添付ファイル)Example (item attachment)

要求Request

以下は、要求の例です。Here is an example of the request.

POST https://graph.microsoft.com/v1.0/me/messages/AAMkpsDRVK/attachments
Content-type: application/json
Content-length: 200

{
  "@odata.type": "#microsoft.graph.itemAttachment",
  "name": "Holiday event", 
  "item": {
    "@odata.type": "microsoft.graph.event",
    "subject": "Discuss gifts for children",
    "body": {
      "contentType": "HTML",
      "content": "Let's look for funding!"
    },
    "start": {
      "dateTime": "2016-12-02T18:00:00",
      "timeZone": "Pacific Standard Time"
    },
    "end": {
      "dateTime": "2016-12-02T19:00:00",
      "timeZone": "Pacific Standard Time"
    }
  }
}
応答Response

以下は、応答の例です。注:簡潔にするために、ここに示す応答オブジェクトは切り詰められている場合があります。すべてのプロパティは実際の呼び出しから返されます。Here is an example of the response. Note: The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call.

HTTP/1.1 201 Created
Content-type: application/json
Content-length: 162

{
  "id":"AAMkADNkNJp5JVnQIe9r0=",
  "lastModifiedDateTime":"2016-12-01T22:27:13Z",
  "name":"Holiday event",
  "contentType":null,
  "size":2473,
  "isInline":false
}

SDK サンプルコードSDK sample code


const options = {
    authProvider,
};

const client = Client.init(options);

const attachment = {
  @odata.type: "#microsoft.graph.itemAttachment",
  name: "Holiday event", 
  item: {
    @odata.type: "microsoft.graph.event",
    subject: "Discuss gifts for children",
    body: {
      contentType: "HTML",
      content: "Let's look for funding!"
    },
    start: {
      dateTime: "2016-12-02T18:00:00",
      timeZone: "Pacific Standard Time"
    },
    end: {
      dateTime: "2016-12-02T19:00:00",
      timeZone: "Pacific Standard Time"
    }
  }
};

let res = await client.api('/me/messages/AAMkpsDRVK/attachments')
    .post({attachment : attachment});

SDK をプロジェクトに追加し、 authproviderインスタンスを作成する方法の詳細については、 sdk のドキュメントを参照してください。Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.