Neue eMail über das Standard-Mailprogramm per AutoIt oder Commandline

  • Hallo Zusammen,

    für ein AutoIt-Script suche ich etwas, daß ähnlich funktioniert wie das mailto: aus HTML bzw. das "Senden an" unter Windows aus dem Kontext-Menue, wenn man auf eine Datei klickt. Es erscheint dann ja das Fenster für eine neue eMail, idealerweise direkt mit dem eingefügten Dateianhang.

    Folgendes habe ich bereits probiert - leider ohne Erfolg:

    Code
    "C:\Users\UserName\AppData\Roaming\Microsoft\Windows\SendTo\Mail Recipient.MAPIMail" c:\printerinfo.txt

    Hat da jemand von euch vielleicht eine Idee, wie man soetwas ohne weitere Tools zu verwenden erstellen kann?

    Vielen Dank vorab für eure Hilfe,
    Grüße

    TheDude

    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    [Cicero, Philippica 12,2]

  • Hier,

    allerdings ohne Dateianhang:

    [autoit]

    Run(@ComSpec & " /c START mailto:bla@blub.de")

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Folgendes funktioniert leider nicht mit allen Mailprogrammen (Outlook z.B. unterstützt die attachment-Option meines Wissens nach nicht).
    Aber vielleicht ist es ein Anfang:

    [autoit]

    Global $o_Dic = ObjCreate("Scripting.Dictionary")
    Global $s_Empfaenger = "irgendwer@test.com,nochjemand@test.com"

    [/autoit][autoit][/autoit][autoit]

    ; Was nicht gebraucht wird - auskommentieren:
    $o_Dic("subject") = "Dies ist mein Betreff" ; Betreff
    $o_Dic("cc") = "nochwer@test.de" ; cc-Empfänger
    $o_Dic("bcc") = "wiederjemand@test.de" ; bcc-Empfänger
    $o_Dic("body") = "Hallo,%0A%0A%0Amit freundlichen Grüßen%0A%0AMax Mustermann" ; Mailtext
    $o_Dic("attachment") = '"D:\Test.txt"' ; Anhang

    [/autoit][autoit][/autoit][autoit]

    Global $s_command = "mailto:" & $s_Empfaenger

    [/autoit][autoit][/autoit][autoit]

    For $i In $o_Dic.Keys
    $s_command &= "&" & $i & "=" & $o_Dic($i)
    Next

    [/autoit][autoit][/autoit][autoit]

    ConsoleWrite($s_command & @CRLF)
    ShellExecute($s_command)

    [/autoit]

    Die Sendto-Verknüpfung ruft übrigens die "sendmail.dll" auf. Vielleicht findest du darüber ja einen besseren Ansatz.

    Einmal editiert, zuletzt von AspirinJunkie (8. März 2013 um 13:13)

  • Hallo Zusammen,

    ... vielen Dank für eure Antworten.

    Die Idee mit dem "MailTo:" kommt dem, was ich suche, schon sehr nahe. Aber ihr habt Recht: Mit Outlook klappt das Anfügen von Anlagen so leider nicht.

    Ich habe in Google gefunden, daß die "Senden an" Option im Kontextmenue des Explorers "Mail Recipient.MAPIMail" aufruft und darüber den Dateinamen wohl mitgibt. Leider kann ich das in einem Batch bzw. mit Run() nicht wie folgt ausführen:

    <Pfad>\Mail Recipient.MAILMapi <Pfad>\<Dateiname>

    Habt ihr hierzu vielleicht noch eine Idee? :whistling:

    Danke vorab,
    viele Grüße

    TheDude

    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    [Cicero, Philippica 12,2]

  • Wenn Du immer Outlook als Mailprogramm zur Verfügung hast, dann kannst Du ja mein OutlookEX UDF verwenden.

  • Hallo Zusammen,

    ... sorry, daß ich mich erst jetzt wieder melde, aber ich hatte bis heute keine Gelegenheit weiter an dem Script zu arbeiten. :S

    water: Ich bin leider auf der Suche nach etwas, was sowohl mit Outlook aber auch z. B. mit Thunderbird funktioniert. Daher hilft mir Deine fantastische UDF hierbei leider nicht weiter, sorry.

    Aber eine Lösung habe ich jetzt leider immer noch nicht ... werde mal weiter daran basteln. Wenn ich es hinbekommen habe, werde ich die Lösung auf jeden Fall hier noch posten.

    Viele Grüße
    Thomas

    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    [Cicero, Philippica 12,2]