Explicación: ¿Cómo envía microsoft Graph API correo?

En Microsoft Graph, cada uno de los métodos forward, reply, replyAll o sendMail crea y envía un mensaje de correo electrónico en la misma llamada. En este artículo se resume cómo Outlook y Exchange Online suelen procesar estas llamadas API para enviar correo en segundo plano. La mayoría de los pasos (pasos del 2 al 7) tienen lugar una vez devuelto el método.

1. Crear un nuevo mensaje en el buzón del remitente

Outlook crea un nuevo mensaje en la carpeta Borradores del remitente, copia el contenido del mensaje, los destinatarios y los datos adjuntos de la solicitud JSON en el borrador del mensaje y, a continuación, lo guarda. Si se ejecuta correctamente, el método devuelve un código de estado de respuesta 202 Accepted HTTP.

Si el remitente proporcionó contenido MIME, Exchange Online lo copia en una sola propiedad del nuevo borrador del mensaje. Exchange Online, a continuación, analiza el contenido MIME y copia el contenido pertinente en las propiedades del mensaje y en las tablas de destinatarios y datos adjuntos. Una vez completado, el método devuelve un código de 202 Accepted estado.

Este paso puede producir un error por motivos como que el buzón del remitente está lleno o la conexión de red al servidor del remitente está inactiva. Si se produce un error en el método, devuelve un código de estado 4xx o 5xx en consecuencia.

Una vez completado el paso 1, la interacción directa de la aplicación con Microsoft Graph ha terminado.

2. Notificación al servicio de transporte del nuevo mensaje saliente

A continuación, Exchange Online notifica a su servicio de transporte que hay un nuevo mensaje disponible para la recogida.

3. Copia del mensaje saliente en la canalización de transporte

A continuación, el proceso de transporte lee el contenido del mensaje del buzón del remitente, lo convierte en formato MIME y lo almacena en la canalización de transporte. Si el remitente proporcionó contenido MIME, el proceso de transporte copia el contenido MIME más o menos intacto. De lo contrario, el proceso de transporte serializa las propiedades del mensaje para construir contenido MIME.

Si se produce un error en el paso 3, el proceso de transporte crea un mensaje de informe de no entrega y lo coloca en la Bandeja de entrada del remitente.

4. Mover el mensaje original a la carpeta Elementos enviados

Una vez que todo esto se realiza correctamente, las llamadas de transporte devuelven al almacén para asumir la responsabilidad del mensaje. En respuesta, el almacén de Exchange actualiza el mensaje y lo mueve de la carpeta Borradores a la carpeta Elementos enviados. (Dependiendo de las propiedades opcionales del mensaje, puede moverse a una carpeta diferente o eliminar el mensaje en su lugar).

5. Realizar la evaluación y el enrutamiento de directivas

Los pasos siguientes que se realizan en el transporte incluyen la aplicación de directivas, el enrutamiento y la entrega de próximo salto. Transport examina las direcciones de correo electrónico de los destinatarios y las cubo según cuál debe ser el salto de enrutamiento inicial. Transporte detecta direcciones de destinatario no válidas en este momento, para las que los correos de transporte devuelven los informes de no entrega al remitente. El transporte aplica las directivas configuradas por los administradores de inquilinos. Estas directivas pueden rechazar el mensaje en función de su contenido, almacenar copias adicionales, etc. Después de aplicar la directiva, los fans de transporte sacan una copia del mensaje a cada destino de próximo salto. Para obtener más información sobre el flujo de transporte, vea Flujo de correo y la canalización de transporte.

6. Entrega de mensajes a destinatarios

Exchange Online transporte puede o no ser responsable de la entrega final a todos los destinatarios. Esto depende de si esos destinatarios tienen buzones de Exchange Online.

7. Entrega de mensajes de informe al remitente

Algunos servicios están implicados en la generación de informes de entrega y su envío al remitente en consecuencia:

  • Cuando un componente de transporte responsable, que puede ser un componente Exchange Online o no Exchange Online, determina que una o varias direcciones de correo electrónico de destinatario no se pueden entregar, el componente genera informes de no entrega.
  • Al mismo tiempo, el componente de transporte genera informes de entrega si el remitente los solicitó explícitamente.
  • El servicio de correo electrónico o el cliente de correo electrónico del destinatario pueden generar notificaciones de lectura y no lectura, o no en absoluto. Para obtener más información sobre los mensajes de informe, consulte DSN y NDR en Exchange Server.