Share via


Explicador: como o Microsoft API do Graph enviar emails?

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 Exchange Online geralmente processam essas chamadas de API para enviar emails nos bastidores. A maioria das etapas (etapas 2 a 7) ocorre após o retorno do método.

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

O Outlook cria uma nova mensagem na pasta Rascunhos do remetente, copia o conteúdo da mensagem, os destinatários e os anexos da solicitação JSON para a mensagem de rascunho e salva-a. 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, Exchange Online copia-o para uma única propriedade na nova mensagem de rascunho. Exchange Online analisa o conteúdo MIME e copia 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 202 Accepted código status.

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

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

2. Notificar o serviço de transporte de nova mensagem de saída

Em seguida, Exchange Online notifica seu serviço de transporte de que uma nova mensagem está disponível para coleta.

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

Em seguida, o processo de transporte lê o conteúdo da mensagem da caixa de correio do remetente, converte-o no 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 serializa as propriedades da mensagem para construir o conteúdo MIME.

Se a etapa 3 falhar, o processo de transporte construirá uma mensagem de relatório sem entrega e a colocará na caixa de entrada do remetente.

4. Mover mensagem original para a pasta Itens Enviados

Depois que tudo isso for bem-sucedido, o transporte retornará ao repositório para assumir a responsabilidade pela mensagem. Em resposta, o exchange store atualiza a mensagem e a move da pasta Rascunhos para a pasta Itens Enviados. (Dependendo das propriedades opcionais da mensagem, ela pode se mover para uma pasta diferente ou excluir a mensagem em vez disso.)

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

As próximas etapas tomadas pelo transporte incluem a aplicação da política, o roteamento e a entrega de próximo salto. O transporte examina endereços de email do destinatário e os caça de acordo com o que o salto de roteamento inicial tem que ser. O transporte detecta endereços de destinatário inválidos neste momento, para os quais os relatórios de não entrega são enviados de volta para o remetente. O transporte então aplica políticas configuradas pelos administradores de locatários. Essas políticas podem rejeitar a mensagem com base em seu conteúdo, armazenar cópias adicionais e assim por diante. Depois de aplicar a política, transporte os fãs para fora uma cópia da mensagem para cada destino de próximo salto. Para obter mais detalhes sobre o fluxo de transporte, consulte fluxo de email e o pipeline de transporte.

6. Entregando mensagem aos destinatários

Exchange Online transporte 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 Exchange Online.

7. Entregando mensagens de relatório ao remetente

Alguns serviços estão envolvidos na geração de relatórios de entrega e envio para o remetente de acordo:

  • Quando um componente de transporte responsável, que pode ser um componente Exchange Online ou não Exchange Online, determina que um ou mais endereços de email do destinatário não são entregues, o componente gera relatórios sem entrega.
  • Ao mesmo tempo, o componente de transporte gera relatórios de entrega se o remetente os solicitou explicitamente.
  • O serviço de email ou cliente de email do destinatário pode gerar notificações de leitura e não leitura ou não. Para obter mais detalhes sobre mensagens de relatório, consulte DSNs e NDRs em Exchange Server.