As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor de versão.
Crie uma sessão de carregamento que permita que um aplicativo carregue de forma iterativa intervalos de um arquivo, de modo a anexar o arquivo a um Outlook item. O item pode ser uma mensagem ou evento.
Use essa abordagem para anexar um arquivo se o tamanho do arquivo estiver entre 3 MB e 150 MB. Para anexar um arquivo menor que 3 MB, POST faça uma operação na propriedade de navegação anexos do item Outlook; consulte como fazer isso para uma mensagem ou para um evento.
Como parte da resposta, essa ação retorna uma URL de carregamento que você pode usar em consultas sequenciais subsequentes PUT . Os headers de solicitação para cada PUT operação permitem especificar o intervalo exato de bytes a serem carregados. Isso permite que a transferência seja retomada, caso a conexão de rede seja largada durante o carregamento.
Veja a seguir as etapas para anexar um arquivo a um item Outlook usando uma sessão de carregamento:
Criar uma sessão de carregamento.
Dentro dessa sessão de carregamento, carrega iterativamente intervalos de bytes (até 4 MB cada vez) até que todos os bytes do arquivo tenham sido carregados e o arquivo seja anexado ao item especificado.
Exchange Online permite que os administradores personalizem o limite de tamanho da mensagem para Microsoft 365 caixas de correio, incluindo quaisquer anexos de mensagem. Por padrão, esse limite de tamanho de mensagem é de 35 MB. Saiba como personalizar o tamanho máximo da mensagem para dar suporte a anexos maiores do que o limite padrão para seu locatário.
Importante
Esteja ciente de um problema conhecido se você estiver anexando um arquivo grande a uma mensagem ou evento em uma caixa de correio compartilhada ou delegada.
Permissões
Uma das seguintes permissões é obrigatória para chamar esta API. Para saber mais, incluindo como escolher permissões, confira Permissões.
Tipo de permissão
Permissões (da com menos para a com mais privilégios)
Delegado (conta corporativa ou de estudante)
Mail.ReadWrite
Delegado (conta pessoal da Microsoft)
Mail.ReadWrite
Aplicativo
Mail.ReadWrite
Solicitação HTTP
Para criar uma sessão de carregamento para anexar um arquivo a um evento:
POST /me/events/{id}/attachments/createUploadSession
Para criar uma sessão de carregamento para anexar um arquivo a uma mensagem:
POST /me/messages/{id}/attachments/createUploadSession
Cabeçalhos de solicitação
Nome
Descrição
Autorização
Portador {token}
Corpo da solicitação
Forneça um objeto JSON com os seguintes parâmetros no corpo da solicitação.
Representa atributos do item a ser carregado e anexado. No mínimo, especifique o tipo de anexo (file), um nome e o tamanho do arquivo.
Resposta
Se tiver êxito, este método retornará um 201 Created código de resposta e um novo objeto uploadSession no corpo da resposta.
Observação:
A propriedade uploadUrl retornada como parte do objeto de resposta uploadSession é uma URL PUT opaca para consultas subsequentes para carregar intervalos de byte do arquivo. Ele contém o token de auth apropriado para consultas PUT subsequentes que expiram por expirationDateTime. Não personalize essa URL.
A propriedade nextExpectedRanges especifica o próximo local de byte de arquivo a ser carregado, por exemplo, "NextExpectedRanges":["2097152"]. Você deve carregar os bytes em um arquivo na ordem.
Exemplos
Exemplo 1: Criar uma sessão de carregamento para adicionar um anexo grande a uma mensagem de rascunho
O exemplo a seguir mostra como criar uma sessão de carregamento que você pode usar nas operações subsequentes de carregamento de arquivo para a mensagem especificada.
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var attachmentItem = new AttachmentItem
{
AttachmentType = AttachmentType.File,
Name = "flower",
Size = 3483322
};
await graphClient.Me.Messages["{message-id}"].Attachments
.CreateUploadSession(attachmentItem)
.Request()
.PostAsync();
Importante
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewAttachmentItemRequestBody()
attachmentItem := msgraphsdk.NewAttachmentItem()
requestBody.SetAttachmentItem(attachmentItem)
attachmentType := "file"
attachmentItem.SetAttachmentType(&attachmentType)
name := "flower"
attachmentItem.SetName(&name)
size := int64(3483322)
attachmentItem.SetSize(&size)
messageId := "message-id"
result, err := graphClient.Me().MessagesById(&messageId).Attachments().CreateUploadSession(message-id).Post(requestBody)
Importante
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Import-Module Microsoft.Graph.Users.Actions
$params = @{
AttachmentItem = @{
AttachmentType = "file"
Name = "flower"
Size = 3483322
}
}
# A UPN can also be used as -UserId.
New-MgUserMessageAttachmentUploadSession -UserId $userId -MessageId $messageId -BodyParameter $params
Importante
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Exemplo 2: Criar uma sessão de carregamento para adicionar um anexo em linha grande a uma mensagem de rascunho
O exemplo a seguir mostra como criar uma sessão de carregamento que pode ser usada para adicionar um anexo em linha grande a uma mensagem de rascunho.
Para um anexo em linha, de set isInline property to true and use the contentId property to specify a CID for the attachment as shown below. No corpo da mensagem de rascunho, use o mesmo valor CID para indicar a posição onde você deseja incluir o anexo usando uma marca de referência HTML CID, por exemplo <img src="cid:my_inline_picture">. Ao carregar o arquivo com êxito, a mensagem renderizada incluirá o anexo como parte do corpo da mensagem no local especificado.
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var attachmentItem = new AttachmentItem
{
AttachmentType = AttachmentType.File,
Name = "scenary",
Size = 7208534,
IsInline = true,
ContentId = "my_inline_picture"
};
await graphClient.Me.Messages["{message-id}"].Attachments
.CreateUploadSession(attachmentItem)
.Request()
.PostAsync();
Importante
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewAttachmentItemRequestBody()
attachmentItem := msgraphsdk.NewAttachmentItem()
requestBody.SetAttachmentItem(attachmentItem)
attachmentType := "file"
attachmentItem.SetAttachmentType(&attachmentType)
name := "scenary"
attachmentItem.SetName(&name)
size := int64(7208534)
attachmentItem.SetSize(&size)
isInline := true
attachmentItem.SetIsInline(&isInline)
contentId := "my_inline_picture"
attachmentItem.SetContentId(&contentId)
messageId := "message-id"
result, err := graphClient.Me().MessagesById(&messageId).Attachments().CreateUploadSession(message-id).Post(requestBody)
Importante
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Import-Module Microsoft.Graph.Users.Actions
$params = @{
AttachmentItem = @{
AttachmentType = "file"
Name = "scenary"
Size = 7208534
IsInline = $true
ContentId = "my_inline_picture"
}
}
# A UPN can also be used as -UserId.
New-MgUserMessageAttachmentUploadSession -UserId $userId -MessageId $messageId -BodyParameter $params
Importante
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.