Erläuterung: Wie sendet microsoft Graph-API E-Mails?

In Microsoft Graph erstellt und sendet jede der Methoden forward, reply, replyAll oder sendMail eine E-Mail-Nachricht im selben Aufruf. In diesem Artikel wird zusammengefasst, wie Outlook und Exchange Online diese API-Aufrufe normalerweise verarbeiten, um im Hintergrund E-Mails zu senden. Die meisten Schritte (Schritte 2 bis 7) erfolgen, nachdem die Methode zurückgegeben wurde.

1. Erstellen einer neuen Nachricht im Postfach des Absenders

Outlook erstellt eine neue Nachricht im Ordner Entwürfe des Absenders, kopiert den Nachrichteninhalt, die Empfänger und Anlagen aus der JSON-Anforderung in den Nachrichtenentwurf und speichert sie dann. Bei erfolgreicher Ausführung gibt die Methode eine HTTP-Antwort 202 Accepted status Code zurück.

Wenn der Absender MIME-Inhalt bereitgestellt hat, kopiert Exchange Online diesen in eine einzelne Eigenschaft im neuen Nachrichtenentwurf. Exchange Online analysiert dann den MIME-Inhalt und kopiert den relevanten Inhalt in Nachrichteneigenschaften sowie in die Empfänger- und Anlagentabellen. Nach Abschluss des Vorgangs gibt die Methode einen 202 Accepted status Code zurück.

Dieser Schritt kann aus Gründen fehlschlagen, z. B. weil das Postfach des Absenders voll ist oder die Netzwerkverbindung mit dem Server des Absenders nicht mehr besteht. Wenn die Methode fehlschlägt, wird ein 4xx- oder 5xx-status Code zurückgegeben.

Sobald Schritt 1 abgeschlossen ist, ist die direkte Interaktion Ihrer App mit Microsoft Graph vorbei.

2. Benachrichtigen des Transportdiensts über neue ausgehende Nachrichten

Als Nächstes benachrichtigt Exchange Online seinen Transportdienst, dass eine neue Nachricht zur Abholung verfügbar ist.

3. Kopieren einer ausgehenden Nachricht in die Transportpipeline

Als Nächstes liest der Transportprozess Nachrichteninhalte aus dem Postfach des Absenders, konvertiert ihn in das MIME-Format und speichert ihn in der Transportpipeline. Wenn der Absender MIME-Inhalt bereitgestellt hat, kopiert der Transportprozess den MIME-Inhalt mehr oder weniger intakt. Andernfalls serialisiert der Transportprozess die Nachrichteneigenschaften, um MIME-Inhalt zu erstellen.

Wenn Schritt 3 fehlschlägt, erstellt der Transportprozess eine Unzustellbarkeitsberichtsnachricht und platziert sie im Posteingang des Absenders.

4. Verschieben der ursprünglichen Nachricht in den Ordner "Gesendete Elemente"

Nachdem all dies erfolgreich war, ruft der Transport an den Speicher zurück, um die Verantwortung für die Nachricht zu übernehmen. Daraufhin aktualisiert der Exchange-Speicher die Nachricht und verschiebt sie aus dem Ordner Entwürfe in den Ordner Gesendete Elemente. (Je nach optionalen Nachrichteneigenschaften kann sie in einen anderen Ordner verschoben oder stattdessen die Nachricht gelöscht werden.)

5. Durchführen der Richtlinienauswertung und des Routings

Die nächsten Schritte des Transports umfassen die Richtlinienerzwingung, das Routing und die Übermittlung des nächsten Hops. Transport untersucht empfänger-E-Mail-Adressen und buckett sie entsprechend dem, was der anfängliche Routinghop sein muss. Transport erkennt zu diesem Zeitpunkt ungültige Empfängeradressen, für die E-Mails von der Nichtzustellbarkeit an den Absender zurückgemeldet werden. Der Transport wendet dann richtlinien an, die von Mandantenadministratoren konfiguriert wurden. Solche Richtlinien können die Nachricht basierend auf ihrem Inhalt ablehnen, zusätzliche Kopien speichern usw. Nachdem Sie die Richtlinie angewendet haben, transportieren Sie Fans eine Kopie der Nachricht an jedes Ziel des nächsten Hops. Weitere Informationen zum Transportflow finden Sie unter Nachrichtenfluss und Transportpipeline.

6. Zustellung von Nachrichten an Empfänger

Exchange Online Transport kann für die endgültige Lieferung an alle Empfänger verantwortlich sein. Dies hängt davon ab, ob diese Empfänger über Exchange Online Postfächer verfügen.

7. Übermitteln von Berichtsnachrichten an den Absender

Einige Dienste sind an der Erstellung von Übermittlungsberichten beteiligt und senden sie entsprechend an den Absender:

  • Wenn eine verantwortungsbewusste Transportkomponente, bei der es sich um eine Exchange Online oder nicht Exchange Online Komponente handeln kann, feststellt, dass eine oder mehrere Empfänger-E-Mail-Adressen nicht zustellbar sind, generiert die Komponente Nichtzustellbarkeitsberichte.
  • Gleichzeitig generiert die Transportkomponente Übermittlungsberichte, wenn der Absender diese explizit angefordert hat.
  • Der E-Mail-Dienst oder E-Mail-Client des Empfängers generiert möglicherweise Lese- und Nichtlesebenachrichtigungen oder gar nicht. Weitere Informationen zu Berichtsmeldungen finden Sie unter DSNs und NDRs in Exchange Server.