Update message

Important

APIs under the /beta version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported.

Update the properties of a message object.

Permissions

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.ReadWrite
Delegated (personal Microsoft account) Mail.ReadWrite
Application Mail.ReadWrite

HTTP request

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

Request headers

Name Type Description
Authorization string Bearer {token}. Required.
Content-Type string Nature of the data in the body of an entity. Required.

Request body

In the request body, supply the values for relevant fields that should be updated. Existing properties that are not included in the request body will maintain their previous values or be recalculated based on changes to other property values. For best performance you shouldn't include existing values that haven't changed. The following properties can be updated.

Property Type Description
bccRecipients Recipient The Bcc recipients for the message.
body ItemBody The body of the message. Updatable only if isDraft = true.
categories String collection The categories associated with the message.
ccRecipients Recipient collection The Cc recipients for the message.
flag followupFlag The flag value that indicates the status, start date, due date, or completion date for the message.
from Recipient The mailbox owner and sender of the message. Must correspond to the actual mailbox used.
importance String The importance of the message. Possible values are: Low, Normal, High.
inferenceClassification String The classification of the message for the user, based on inferred relevance or importance, or on an explicit override. Possible values are: focused or other.
internetMessageId String The message ID in the format specified by RFC2822. Updatable only if isDraft = true.
isDeliveryReceiptRequested Boolean Indicates whether a read receipt is requested for the message.
isRead Boolean Indicates whether the message has been read.
isReadReceiptRequested Boolean Indicates whether a read receipt is requested for the message.
multiValueExtendedProperties multiValueLegacyExtendedProperty collection The collection of multi-value extended properties defined for the message. Nullable.
replyTo Recipient collection The email addresses to use when replying. Updatable only if isDraft = true.
sender Recipient The account that is actually used to generate the message. Updatable when sending a message from a shared mailbox, or sending a message as a delegate. In any case, the value must correspond to the actual mailbox used.
singleValueExtendedProperties singleValueLegacyExtendedProperty collection The collection of single-value extended properties defined for the message. Nullable.
subject String The subject of the message. Updatable only if isDraft = true.
toRecipients Recipient collection The To recipients for the message.

Since the message resource supports extensions, you can use the PATCH operation to add, update, or delete your own app-specific data in custom properties of an extension in an existing message instance.

Response

If successful, this method returns a 200 OK response code and updated message object in the response body.

Example

Request

Here is an example of the request.

PATCH https://graph.microsoft.com/beta/me/messages/{id}
Content-type: application/json
Content-length: 248

{
  "subject": "subject-value",
  "body": {
    "contentType": "",
    "content": "content-value"
  },
  "inferenceClassification": "other"
}
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 200 OK
Content-type: application/json
Content-length: 248

{
  "receivedDateTime": "2016-10-19T10:37:00Z",
  "sentDateTime": "2016-10-19T10:37:00Z",
  "hasAttachments": true,
  "subject": "subject-value",
  "body": {
    "contentType": "",
    "content": "content-value"
  },
  "bodyPreview": "bodyPreview-value",
  "inferenceClassification": "other"
}

SDK sample code


GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var message = new Message
{
	Subject = "subject-value",
	Body = new ItemBody
	{
		ContentType = BodyType.Text,
		Content = "content-value"
	},
	InferenceClassification = InferenceClassificationType.Other
};

await graphClient.Me.Messages["{id}"]
	.Request()
	.UpdateAsync(message);

Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.

See also