Outlook: Per CLI eine neue E-Mail erstellen

Sozusagen im Fahrwasser dieses Beitrags folgt nun als “Quasi-Plan-B” zur MAPI die Möglichkeit neue E-Mails per Skript, Befehl oder Verknüpfung erstellen zu können.

Theoretisch und soweit man in der Registry erkennen kann wird mindestens folgender Befehl an Outlook gesendet, wenn man aus dem Kontextmenü des Explorers “Senden an – E-Mail-Empfänger” auswählt:

"C:\Program Files\Microsoft Office 15\root\office15\outlook.exe" -c IPM.Note /mailto "%1"

Der Pfad zu Outlook variiert je nach Version. Nachfolgend wird der Pfad weg gelassen. Eine simple leere E-Mail wird mit

outlook.exe -c IPM.Note

erzeugt. Möchte man den Empfänger angeben dann idealerweise (siehe Anhang) so:

outlook.exe -c IPM.Note /m <E-Mail-Adresse>

Mit Anhang:

outlook.exe -c IPM.Note /m <E-Mail-Adresse> /a "<Pfad\Dateiname>"

Hinweis: Mit “/mailto” funktionert “/a” nicht!

Mit Betreff:

outlook.exe -c IPM.Note /m "<E-Mail-Adresse>&subject=Mein%20Betreff"

Mit Nachrichtentext:

outlook.exe -c IPM.Note /m "<E-Mail-Adresse>&subject=Mein Betreff&body=Mein Text"

Quellen:

ExtendOffice – How to create an Outlook new email with specified command line?

Microsoft Support – How to use command line switches to create a pre-addressed e-mail message in Outlook

10 Kommentare

  1. Alex Wittgen

    Hallo Andy,

    vielen Dank für deine ausführliche Doku.

    Habe einiges davon verwenden können, habe aber folgendes Problem.
    Das Aufruf der Kommandozeile, z.B. outlook.exe -c IPM.Note /m “subject=Mein Betreff&body=Mein Text” /a “” funktioniert wunderbar, jedoch NUR wenn Outlook vorher NICHT gestartet ist. Wenn Outlook geöffnet ist, dann kommt die Fehlermeldung “Konnte Dateianhang nicht finden”.

    Irgendeine Idee??

    Lieben Dank Alex

  2. Dietrich

    Hallo Andy,

    besten Dank für die Info.

    Ich habe die einzelnen Optionen probiert und bin beim Betreff bzw. Nachrichtentext hängen geblieben.
    Er hat mir immer alles in der Mailadresse angezeigt.
    Im Web habe ich dann den entscheidenden Hinweis gefunden: & für subject= muss zu ?subject= werden
    Beispiel:
    outlook.exe /c ipm.note /m “someone@microsoft.com?subject=subject%20test&body=Email%20body%20test”

    Referenz: https://stackoverflow.com/questions/248569/starting-outlook-and-having-an-email-pre-populated-from-command-line

  3. Dietrich

    Als Ergänzung

    und der obige Kommentar wurde mit folgender Office-Version getestet:
    Office 365 MSO (16.0.127.30.20144)

  4. Tom Stein

    Die Parameter folgenden Regeln, die im für URLs im Browser gelten, erweitert auf ein externes Programm. Das bedeutet: Der Befehl “mailto:” im Browser wird durch /m angegeben. Der Parameterbereich wird durch “?” abgetrennt. Mehrere Parameter sind durch “&” zu trennen.

    Parameter können sein: cc, bcc, subject, body.

    Egal ob Outlook oder Thunderbird, bei beiden funktioniert (man beachte die Position der Anführungszeichen):
    start mailto:”jemand@example.com?cc=nochjemand@example.com&subject=Meine%20Mail&body=Hallo%20Du!%0AViel%20Spaß!”

  5. Peter

    Hallo bin gerade beim stöbern hier gelandet,
    Interessant
    gibt es auch die Möglichkeit den Text einer Datei als Body zu übernehmen?

  6. Josef Passenbrunner

    Beim Scanner EPSON Workforce DS-1630 und Programm: “Document Capture Pro” funktioniert die Übernahme der gescannten Datei in das E-Mail von Outlook folgendermaßen:
    AuftragsscanAuftragseinstellungen4.Senden
    Ziel: Anwendung
    BearbeitenUmbenennenEinstellname: Outlook
    Durchsuchen:
    C:Program FilesMicrosoft OfficeOffice 16Outlook.exe
    Öffnen
    Damit erscheint als Ort:
    C:Program FilesMicrosoft OfficeOffice 16Outlook.exe
    (zur Information: Bei mir so, weil Office 2016 und Windows 10).
    Aktionsparameter Starten:
    Benutzerdefiniert auswählen:
    Eintrag: -c ipm.note /a %file

  7. qwertzy0815

    Vielen Dank erstmal für den tollen Beitrag!
    Ich suche nun nach einer Möglichkeit, mehrere Anhänge einer neuen E-Mail mittels Kommandozeile zu übergeben. Optimalerweise alle Dateien, die in einem Ordner liegen.

    Sowohl
    > OUTLOOK.EXE -c IPM.Note /a “D:Bilder”
    als auch
    > OUTLOOK.EXE -c IPM.Note /a “D:Bilder*.*”
    führt leider zur Fehlermeldung, dass es sich beim Anhang um einen Ordner handele, der nicht angehängt werden kann.

    Eine Reihung mehrerer Anhangsdateien mittels
    > OUTLOOK.EXE -c IPM.Note /a “D:BilderBild1.jpg” “D:BilderBild2.jpg”
    oder
    > OUTLOOK.EXE -c IPM.Note /a “D:BilderBild1.jpg” /a “D:BilderBild2.jpg”
    führt leider auch nicht zum Erfolg. Erster Befehl bringt eine Fehlermeldung, zweiter führt dazu, dass nur die erste Datei angehängt wird.

    Gibt es hierfür eine Möglichkeit?

  8. Andy

    Das Problem scheint zu sein, das der Parameter auf einen Anhang begrenzt ist.
    Es gibt wohl die Möglichkeit, das via VBS-Skript zu lösen. Getestet habe ich das allerdings nicht.
    Ein Beispiel siehe hier (Variante 3):

    https://www.onestep2.at/blog/divers/outlook-2016-rechtsklick-senden-an-funktioniert-nicht-mehr

  9. qwertzy0815

    Inzwischen denke ich auch, dass man das nur über ein Skript lösen könnte. Enttäuschend, dass Outlook hier nach meinen Recherchen an der Kommandozeile nur einen Anhang zulässt.

    Jedenfalls danke für den Link! Das sollte in die richtige Richtung führen.

  10. Thomas Stein

    Der Hinweis, dass /m nicht mit /a funktioniert, ist mind. seit Outlook 2013 falsch. Allerdings benutze ich es in der Reihenfolge /a “Anhang” /m “Empfänger?subject=Text”. Wenn der “Anhang” eine HTML-Datei ist, wird diese den Text der Mail (jedenfalls den HTML-Teil) ersetzen.

Schreibe einen Kommentar

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

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑