CONNECTED Conference 2023 - Aufzeichnungen jetzt hier verfügbar +++                     

Suche

über alle News und Events

 

Alle News

 

Messaging mit dem Service Bus ermöglicht die...

Weiterlesen

Sebastian Meyer, Microsoft & SAP...

Weiterlesen

Für Entwickler, Architekten, Projektleiter und...

Weiterlesen

In der Welt der Softwareentwicklung ist die...

Weiterlesen

QUIBIQ spendet für den guten Zweck – und für...

Weiterlesen

Eine bestimmte Antwort auf einen HTTP Request zu...

Weiterlesen

In einer Welt, die von stetigem Wandel geprägt...

Weiterlesen

In einem unserer Kundenprojekte, war das Ziel eine...

Weiterlesen

QUIBIQ Hamburg wird mit dem Hamburger...

Weiterlesen

Zwei Tage lang wurde vom 14.-15.11 wieder das...

Weiterlesen

How-To: Export and save Outlook Email (including attachments) from Azure Logic App (Consumption)

In einem unserer Kundenprojekte, war das Ziel eine bitgleiche Outlook Email ( bestenfalls im MSG Format und mit Attachments ) mit Hilfe einer Logic App als Blob abzulegen. In diesem Blogartikel, werde ich erläutern, auf welche Schwierigkeiten man hier stößt und welchen Workaround wir dafür angewendet haben.

Herausforderungen

  1. Die Outlook Connectoren der Logic Apps liefern nur eine JSON Repräsentation der eigentlichen Email. Mit diesen ist es nicht möglich die Mail einfach als .msg Datei abzulegen.
  2. Die File Extension .msg ist eine von Microsoft eingeführtes Format. Somit ist es nur möglich eine .msg Datei zu erzeugen, indem die Email direkt aus Outlook gespeichert oder eine zusätzliche Software verwendet wird.

Lösungsansätze

Folgende Lösungsansätze wären denkbar gewesen:

  1. Implementierung mit Hilfe einer Azure Function und zusätzlicher Software, welche es ermöglicht, Dateien im MSG Format zu speichern.
  2. Nutzung des EML Formats ( anstatt MSG ) und der Microsoft Graph Api mit Hilfe einer App Registration.

Da wir keine zusätzliche Software für diesen Ansatz verwenden wollten, entschieden wir uns für Ansatz 2.

Voraussetzungen

Für diesen Lösungsansatz benötigen wir:

  • App Registration
    • Api Permission
      • Mail.Read ( Application )
    • Secrets
      • Set up Secret
  • Credentials der Mailbox

Warnung: Diese Api Permission gibt der App Registration Berechtigungen auf ALLE Postfächer des Tenants. Diese müssen zusätzlich über Policies und Mail Security Groups eingeschränkt werden.
Siehe Artikel:
https://www.2azure.nl/2022/10/02/restrict-azure-app-permissions-to-specific-mailboxes-only/

Umsetzung

Für die Umsetzung nutzen wir die Microsoft Graph Api, diese nutzt die OAuth2 Authentifizierung.
Somit benötigen wir folgende Prozesse:

  • OAuth2 Token Generierung
  • Verarbeiten der Outlook Emails ( durch App Registration und Micrrosoft Graph Api )

Prozess 1: OAuth2 Token Generierung

Da wir parallele Verarbeitung haben werden, wollen wir die Token Generierung in einen separaten Prozess auslagern.
Dafür haben wir uns für eine Function App entschieden, welche über einen Timer Trigger verfügt.

Folgende Details werden benötigt:

  • Http Request Token
  • Managed Identity der Function App
    • Berechtigungen
      • Secrets
        • Get
        • List
        • Set
        • Delete
        • Purge

Somit wird bei Ausführung der Function jeweils ein Token beim Token Endpunkt angefragt und anschließend im Azure Key Vault abgelegt, sodass die anderen Prozesse dieses verwenden können.

Prozess 2: Verarbeitung der Emails

Es wird mehrere Logic Apps geben, welche unterschiedliche Emails verarbeiten. Hier werden wir uns auf einen Workflow fokussieren.

Folgende Details werden benötigt:

Der Graph Api Request gibt die Nachricht als eml Datei zurück. Diese kann somit einfach als Blob abgelegt werden.

Der Workflow würde also wie folgt aussehen:

Mehr Details zum Http Request und der Erstellung des Blobs:

Thats it!

Fazit

Da es leider nicht möglich ist ohne zusätzliche Tools möglich ist die bitgleiche Mail im MSG Format abzulegen, haben wir uns für das EML Mail Format entschieden. Mit diesem ist es einfach möglich die Mail über die Graph Api abzurufen und abzulegen. Allerdings sollte definitiv beachtetet werden, dass die Applikations-Berechtigung der App Registration eingeschränkt werden sollte.

Dieser quiTeq-Tipp kommt aus Stuttgart von Nico Deni.

Ihre Kontaktmöglichkeiten

Sie haben eine konkrete Frage an uns


 

Bleiben Sie immer auf dem Laufenden


 

Mit meinem "Ja" erkläre ich mich mit der Verarbeitung meiner Daten zur Zusendung von Informationen einverstanden. Ich weiß, dass ich diese Erklärung jederzeit durch einfache Mitteilung widerrufen kann. Bei einem Nein an dieser Stelle erhalte ich zukünftig keine Informationen mehr.

© QUIBIQ GmbH · Impressum · Datenschutz