E-Mails mit Power Apps versenden | Einfache Anleitung

Emails mit PowerApps versenden Einfache Anleitung 1

Dieser Artikel erklärt, wie man E-Mails mit dem PowerApps Office 365 Outlook Connector verschickt. Für den Mailversand gibt es auch andere Möglichkeiten neben dem Office 365 Connector wie zum Beispiel den SMTP Connector. Der Office 365 Outlook Connector ist aber wahrscheinlich die gängigste Lösung, da man ohnehin bereits in der Microsoft Welt unterwegs ist.

Der Artikel beginnt mit einer Schritt-für-Schritt-Anleitung, wie du eine E-Mail versenden kannst. Das Beispiel ist bewusst einfach gehalten. Etwas komplexere Themen werden nach der Schritt-für-Schritt-Anleitung besprochen.

Lasst mich in den Kommentaren wissen, wenn ihr noch offene Fragen habt!

Schritt für Schritt: E-Mails mit PowerApps verschicken

PowerApps Send Email Example: Send an email on button press with Power Apps Office 365 Outlook Connector.

  1. Öffne eine Power App in deinem Browser

  2. Klicke auf das Daten Symbol, klicke auf ‚Add data‘, suche nach ‚outlook‘ und wähle ‚Office 365 Outlook‘

    PowerApps Office 365 Outlook Add

    Office 365 Outlook deiner App hinzufügen

  3. Wähle den Account, den du für das E-Mail Versenden nutzen willst

    powerapps office 365 outlook select email

    Wähle Office 365 Outlook Account aus

  4. Prüfe ob der Office 365 Outlook Connector bei dir unter Data angezeigt wird

    powerapps office365outlook connected

    Office365Outlook

  5. Füge deiner App einen Button in deiner App hinzu, um das E-Mail versenden anzustoßen

    powerapps add a button

    Neuer Button

  6. Wähle den Button aus, wähle ‚OnSelect‘ Eigenschaft aus und füge den Code ein (für Copy & Paste findest du den Code unten)

    powerapps send email button

    OnSelect property for Button

  7. Führe die App aus, klicke den Button und prüfe deinen Posteingang im E-Mail Programm

Hier ist der Code aus der Anleitung zum kopieren

Office365Outlook.SendEmailV2(
    "[email protected]", // To
    "Greetings from my App", // Subject
    "Just wanted to say helllo." // Body
)

Mehrere Empfänger

Um eine E-Mail an mehr als einen Empfänger zu schicken, kannst du einfach die Mailadressen mit einem Semikolon trennen, wie es auch im Mailprogramm geht. Hier zum Beispiel:

Office365Outlook.SendEmailV2(
   "[email protected]; [email protected]; [email protected]", 
   "Where is my lightsaber", 
   "Yo, I've lost my lightsaber? Have you seen it? Cheers Leia"
)

CC und BCC (Kopie und Blindkopie)

Um Empfänger in CC zu nehmen oder eine Blindkopie zu verschicken, musst du wie folgt vorgehen:

Office365Outlook.SendEmailV2(
    "[email protected]",
    "Short question",
    "What time is it?",
    {
        Cc:"[email protected];[email protected]",
        Bcc:"[email protected]",
    }
)

Priorität / Wichtigkeit

Um E-Mails mit hoher Priorität zu verschicken, gibt es die Importance Einstellung.

Importance kann folgende Werte haben:

  • Low
  • Normal
  • High
Office365Outlook.SendEmailV2(
    "[email protected]",
    "Bookmark me!",
    "See title and do it, NOW!",
    {
        Importance: "High"
    }
)

E-Mail Anhänge

Um E-Mails mit Anhängen zu verschicken, gibt es die Attachments Option. Attachments Option erwartet einen Table, um mehrere Attachments zu ermöglichen. Die Zeilen im Table liefern den Dateinamen und den Dateninhalt.

Eine Zeile hat also folgende Eigenschaften

  • Name: Dateiname der Datei, die angehängt wird.
  • ContentBytes: Inhalt der Datei, die angehängt wird.

Ein Beispiel für das Versenden einer E-Mail mit Anhang.

Office365Outlook.SendEmailV2(
    "[email protected]",
    "Mail with attachment",
    "Picture attached",
    
    {
        Attachments: 
          Table({
            Name: "picture.jpg",
            ContentBytes: MyImage
            }
        )
    }
)

HTML E-Mail versenden

Die SendEmailV2 Funktion versendet den Body immer im HTML Format. D.h. man kann im Text HTML Tags benutzen.

Hinweis: Leider stellen verschiedene E-Mail-Programme HTML und CSS unterschiedlich da. Deswegen würde ich dazu raten, insbesondere komplexere HTML und CSS Programmierung zu meiden. Ein Test in verschiedenen E-Mail-Clients macht auf jeden Fall Sinn, sobald etwas HTML in der Mail hat.

Hier ist ein Beispiel für die Verwendung von HTML Tags in einer E-Mail.

Office365Outlook.SendEmailV2(
    "[email protected]",
    "I have HTML in my body",
    "Hi there!<br/>I am <strong>strong</strong> and I am <i>italic</i>."
)

Um einen Link in einer E-Mail zu verschicken, kann HTML verwendet werden. Hier ein Beispiel für eine Mail mit einem Link:

Office365Outlook.SendEmailV2(
    "[email protected]", // To
    "Link in Email", // Subject
    "Here is the link: <br/><a href=" & Char(34) & "https://zeitgeistcode.com" & Char(34) & " target=" & Char(34) & "_blank" & Char(34) & ">Click me</a>"// Body
);

E-Mail an den angemeldeten Nutzer schicken

Nutze einfach die User Funktion, um die E-Mail-Adresse vom aktuellen Nutzer herauszufinden.

Office365Outlook.SendEmailV2(
    User().Email, 
    "Subject", 
    "Body"
);

E-Mail an den Vorgesetzten schicken

Um die E-Mail-Adresse des Managers einer Person herauszufinden, nutze den Office 365 Users Connector.

1 powerapps office 365 users
Office 365 Users Connector hinzufügen

Wenn der Office 365 Users Connector eingerichtet ist, kann der Manager wie folgt gefunden werden:

Office365Users.Manager(User().Email).Mail

Office365Outlook.SendEmailV2(
    Office365Users.Manager(User().Email).Mail, 
    "Subject", 
    "Body"
);

Absender ändern

Um E-Mail unter einem anderen Absender als dem aktuell angemeldet Benutzer zu verschicken, gibt es die „From“ Option.

Hinweis: Da das Senden unter einer anderen Absenderadresse auch missbraucht werden kann, muss erst einmal die Berechtigung dafür haben. Diese Berechtigung kann nur ein Administrator erteilen. Wie man die Berechtigung erteilt, kannst du hier nachlesen: Erteilen von Postfachberechtigungen für einen anderen Benutzer.

Office365Outlook.SendEmailV2(
    "[email protected]", // To
    "Email from another account", // Subject
    "Here is my message.", // body
    {
      From: "[email protected]"
    }
);

Reply to überschreiben

Um die Reply to Adresse zu überschreiben, gibt es die ReplyTo Option. Warum sollte man das tun? Mir fällt als einziger Grund ein, dass man nicht will, dass die Adressaten auf die Senderadresse antworten. D.h. man setzt die Reply to Adresse auf eine noreply Adresse, wie auch in dem folgenden Beispiel:

Office365Outlook.SendEmailV2(
    "[email protected]",
    "Thank you",
    "for the JOY!",
    {
        ReplyTo:"[email protected]"
    }
)

Zeilenumbrüche im Mailtext

Da der Mailtext beim Office 365 Outlook Connector im HTML Format verschickt wird, kann manauch für Zeilenumbrüche HTML benutzen.

Der br-Tag erlaubt Zeilenumbrüche in HTML und kann hier auch benutzt werden.

Office365Outlook.SendEmailV2(
    "[email protected]", // To
    "Greetings", // Subject
    "Hello,<br/>how are you?" // Body
);

Button in E-Mail

Einen Button in einer E-Mail darzustellen, ist leider keine einfache Aufgabe. Die Herausforderung ist einen Button zu implementieren, der in den gängigsten E-Mail-Programmen mehr oder weniger gleich aussieht. Das ist nicht so einfach, weil die verschiedenen Programme mal mehr oder weniger HTML und CSS interpretieren.

Ein Button der in Outlook gut aussieht, muss nicht zwangsläufig in GMail gut aussehen.

Ich habe deswegen etwas rumprobiert und mich etwas von dem folgenden Artikel leiten lassen: „How to Create Beautiful Bulletproof Email Buttons That Absolutely Work„.

Hier ist ein Screenshot von meiner Lösung:

1 power apps mail with button
Mail with Button

Um den Button in einer E-Mail einzubinden, gehe wie folgt vor:

  1. Erstellung einer HTML-Vorlage für den Button mit zwei Platzhaltern für den Button Text und die Zieladresse (‚button text‘,’target llink‘)
  2. Ersetze die Platzhalter für die Buttonbeschriftung und die Zieladresse, wie du es benötigst
  3. Benutze das angepasste HTML in deinem Mailtext

Es ist etwas fummelig, aber funktioniert für mich. Wer eine besser Lösung hat, bitte lasst es mich wissen!

// define a button template

Set(
    mailButton,
    "<br /> <br /> <style>  a:visited { color: #ffffff; }  </style> <table width=" & Char(34) & "100%" & Char(34) & " cellspacing=" & Char(34) & "0" & Char(34) & " cellpadding=" & Char(34) & "0" & Char(34) & "> <tbody> <tr> <td> <table cellspacing=" & Char(34) & "0" & Char(34) & " cellpadding=" & Char(34) & "0" & Char(34) & "> <tbody> <tr> <td bgcolor=" & Char(34) & "#1f4372" & Char(34) & " style=" & Char(34) & "border-radius: 4px" & Char(34) & "> <a class=" & Char(34) & "maillink" & Char(34) & " href=" & Char(34) & "#link#" & Char(34) & " target=" & Char(34) & "_blank" & Char(34) & " style=" & Char(34) & " padding: 10px 14px; border: 1px solid #1f4372; border-radius: 2px; font-family: Helvetica, Arial, sans-serif; font-size: 14px; color: #ffffff; text-decoration: none; font-weight: bold; display: inline-block; " & Char(34) & " >#text#</a> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table>"
);

// adjust button text and button target link

Set(clickHereButton,
  Substitute(
      Substitute(
        mailButton,
        "#link#",
        "https://zeitgeistcode.com" // target link
       ),
      "#text#",
      "Click here" // button text
    )
);   

Office365Outlook.SendEmailV2(
    "[email protected]", // To
    "Button in Email", // Subject
    "Here is the button: " & clickHereButton // Body
);

E-Mail-Client aus der Anwendung starten

Für Feedback oder Supportfälle kann es hilfreich sein, den Nutzer dazu anzuleiten, eine Mail an eine Adresse mit einem vorgegebenen Titel zu schreiben.

Mit HTML kann man das umsetzen. Mit der Launch Funktion von PowerApps kann man dann einfach den HTML Code aufrufen.

Hier seht ihr ein paar Code Beispiele:

Launch("mailto:[email protected]");

Launch("mailto:[email protected][email protected]"); // with CC

Launch("mailto:[email protected][email protected]"); // with BCC

Launch("mailto:[email protected]?subject=Happy%20Birthday"); // with subject

Launch("mailto:[email protected]?body=Happy%20Birthday"); // with body

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert