Outlooknachricht per DragDrop als *.msg speichern

  • Moin,

    ich versuche eine Outlooknachricht per Drag & Drop in einem Ordner als *.msg Datei mit @water's UDF zu speichern.

    Anbei der Code. Es funktioniert leider nicht.

    könnt ihr mir helfen?


  • Das Thema Mails in irgendetwas zu verwandeln liegt mir ziemlich am Herzen. Leider z.Z. nicht genug Zeit. Was wird das wenn ich fragen darf?


    Edit :

    Wenn Du ein Outloock Mail auf dem Desktop ablegst wandelt sich das nicht von selbst in ein msg? Benutze kein Outlook, aber meine Mail Programme verhalten sich alle so. Aber eben kein Outlook


    Gruß


    Peter

    Hinweise auf Suchmaschienen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

  • Ok - habe soetwas dieser Tage für images gemacht... Verarbeitest Du die MSG weiter? Was "treibst" Du damit?

    Peter

    Hinweise auf Suchmaschienen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

  • Zitat

    Verarbeitest Du die MSG weiter? Was "treibst" Du damit?

    Ich möchte sie auf der Festplatte als *.msg speichern. Alles andere ist sekundär.

    Für andere Dateien ist es ja kein Problem.


    Ich denke, water könnte was dazu sagen. Er hat die UDF dafür geschrieben, die ich sonst hervorragend nutze.

  • So funktioniert es, z.B. auf Laufwerk D:\ ! ;)

  • Code
    1. Global $oOutlook = _OL_Open()
    2. $oOutlook = ObjCreate("Outlook.Application")

    ist doppelt gemoppelt. Wirf die zweite Zeile raus.

    Außerdem würde ich die Verbindung zu Outlook nicht in einer Funktion sondern gleich nach dem Programmstart machen (sonst machst Du das ja wieder und wieder und ...). Und bei Scriptende vielleicht (zwecks der Schönheit) noch ein _OL_Close.

  • water , ich wollte das ganze noch erweitern.

    Die gesamte Mail mit Anhang kann ja jetzt per DragDrop als *.msg Datei gespeichert werden.


    Nun wollte ich auf dem gleichen Weg aus einer Mail nur den Anhang per DragDrop speichern.

    Das Subject kann ich ja wie oben im Script auslesen, aber das Auslesen des .Attachments bekomme ich nicht hin.


    Mit $objItem.SaveAsFile ist es ja dann möglich das File zu speichern.


    Kannst du mir helfen?

  • Dafür ist die Funktion _OL_ItemSave da. Da kannst Du entscheiden, was wo gesichert werden soll.

  • Zitat

    Dafür ist die Funktion _OL_ItemSave da. Da kannst Du entscheiden, was wo gesichert werden soll.

    Wenn ich eine neue Mail erstelle, verwende ich auch den Befehl zum Speichern in eine *.msg Datei.

    Das klappt gut.


    Aber woher bekomme ich das?


    "$vItem = EntryID or object of the item to save"


  • Hängt davon ab, was die Funktionen in "DragDropEvent.au3" machen. Irgendwie müssen die zurückgeben, welches Item verschoben wurde.
    Jede Mail hat eine sogenannte EntryID (eindeutige Kennung) oder es wird direkt das Objekt der Mail zurückgegeben.

  • Ist das mit der EntryID Programmabhängig? Gibt es das nur in Outlook oder auch in anderen Programmen? Woher kommt die Nummer?



    Danke

    Peter

    Hinweise auf Suchmaschienen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

  • Ich kenne das nur von Outlook - aber andere Programme müssen auch eine Kennung haben um ein Objekt eindeutig zu identifizieren.

    Wenn Du bereits die ganze Mail sichern kannst, dann hast Du ja schon Zugriff auf die Mail. Mit _OL_ItemSave kannst Du nicht nur die ganze Mail (inkl. Anhänge), sondern nur dei Anhänge sichern.
    Mit Parameter $iFlags steuerst Du das.

  • Zitat

    Mit _OL_ItemSave kannst Du nicht nur die ganze Mail (inkl. Anhänge), sondern nur dei Anhänge sichern.

    Mit Parameter $iFlags steuerst Du das.

    water Vielen Dank!

    Eine super UDF. :)


    Genauso habe ich es schon gemacht und es funktioniert gut.


    Leider wird mit dem Setzen des "Flags 2 + 8" bei den Anhängen kein "@error = 11" erzeugt, sondern nur bei "Flags 1 + 8".

    Somit kann ich wenigstens beim Item sehen ob es schon als Datei gespeichert ist und dann entscheiden ob ich es ersetze oder hinzufüge.

  • Genau. Aber das könnte man bei Bedarf noch einbauen :)
    Oder Du verwendest vorab FileExists um zu checken, ob es die Datei/den Anhang schon gibt.