Visão geral do processo de envio de email do Microsoft Graph

No Microsoft Graph, cada um dos métodos forward, reply, replyAll ou sendMail cria e envia uma mensagem de email na mesma chamada. Este artigo resume como o Outlook e o Exchange Online geralmente processam as chamadas à API de envio de email. A maioria das etapas (etapas 2 a 7) ocorre depois que a resposta do método é retornada.

1. Criar uma nova mensagem na caixa de correio do remetente

O Outlook cria uma nova mensagem na pasta Rascunhos do remetente, copia o conteúdo, os destinatários e os anexos da mensagem da solicitação JSON para a mensagem de rascunho e a salva. Se for bem-sucedido, o método retornará um código de status de resposta 202 Accepted HTTP.

Se o remetente forneceu conteúdo MIME, o Exchange Online o copiará para uma única propriedade na nova mensagem de rascunho. Em seguida, o Exchange Online analisa o conteúdo MIME e copia o conteúdo relevante para as propriedades da mensagem e para as tabelas de destinatários e anexos. Quando concluído, o método retorna um código de 202 Accepted status.

Esta etapa pode falhar por motivos como a caixa de correio do remetente estar cheia ou a conexão de rede com o servidor do remetente estar inoperante. Se o método falhar, ele retornará um código de status 4xx ou 5xx de acordo.

Quando a etapa 1 for concluída, a interação direta do seu aplicativo com o Microsoft Graph terminará.

2. Notifique o serviço de transporte sobre a nova mensagem de saída

O Exchange Online notifica o serviço de transporte de que uma nova mensagem está disponível para retirada.

3. Copiar a mensagem de saída para o pipeline de transporte

O processo de transporte lê o conteúdo da mensagem da caixa de correio do remetente, converte-o para o formato MIME e armazena-o no pipeline de transporte. Se o remetente forneceu conteúdo MIME, o processo de transporte copiará o conteúdo MIME mais ou menos intacto. Caso contrário, o processo de transporte serializará as propriedades da mensagem para construir o conteúdo MIME.

Se a etapa 3 falhar, o processo de transporte construirá uma mensagem de notificação de falha na entrega e a colocará na Caixa de Entrada do remetente.

4. Mova a mensagem original para a pasta Itens Enviados

Depois que tudo isso for bem-sucedido, o transporte ligará de volta para a loja para assumir a responsabilidade pela mensagem. Em resposta, o repositório do Exchange atualiza a mensagem e a move da pasta Rascunhos para a pasta Itens Enviados. (Dependendo das propriedades opcionais da mensagem, ela pode ser movida para uma pasta diferente ou excluir a mensagem.)

5. Executar a avaliação e o roteamento de políticas

As próximas etapas tomadas pelo transporte incluem imposição de política, roteamento e entrega de next-hop. O transporte examina os endereços de e-mail dos destinatários e os agrupa de acordo com o que deve ser o salto de roteamento inicial. O transporte detecta endereços de destinatário inválidos neste ponto, para os quais o transporte envia os relatórios de não entrega de volta ao remetente. Em seguida, o transporte aplica políticas configuradas por administradores de locatários. Essas políticas podem rejeitar a mensagem com base em seu conteúdo, armazenar cópias e assim por diante. Depois de aplicar a política, o transporte distribui uma cópia da mensagem para cada destino do próximo salto. Para obter mais detalhes sobre o fluxo de transporte, consulte fluxo de emails e pipeline de transporte.

6. Entregar mensagem aos destinatários

O transporte do Exchange Online pode ou não ser responsável pela entrega final a todos os destinatários. Isso depende se esses destinatários têm caixas de correio do Exchange Online.

7.Entregar mensagens de relatório ao remetente

Alguns serviços estão envolvidos na geração de relatórios de entrega e no envio adequado ao remetente:

  • Quando um componente de transporte responsável, que pode ser um componente do Exchange Online ou não do Exchange Online, determina que um ou mais endereços de email de destinatário não podem ser entregues, o componente gera relatórios de falha na entrega.
  • Ao mesmo tempo, o componente de transporte gera relatórios de remessa se o remetente os solicitou explicitamente.
  • O serviço de email ou o cliente de email do destinatário pode gerar notificações lidas e não lidas, ou não gerar.

Para obter mais informações sobre mensagens de relatório, consulte DSNs e NDRs no Exchange Server.

APIs do Microsoft Graph que criam e enviam um rascunho em chamadas separadas: