Export in Dokumentenarchiv per Kontextmenü

  • Hallo alle,

    bei einem Kunden stehe ich vor der Aufgabe, einzelne E-Mails (manuell) in ein Archivsystem zu übernehmen. Plugins gibt's natürlich nur für Outlook, daher muss es mit Tobit anders laufen.

    Was funktioniert, ist eine Mail per drag'n'drop auf den Desktop zu ziehen, so eine .eml-Datei zu erstellen, und diese per Rechtsklick und "senden an..." ins Archivsystem zu übergeben. Das ist dem Kunden aber manuell zu umständlich, und nun sucht er nach einer vereinfachten Variante, am besten mittles eines simplen Rechtsklicks auf die Nachricht direkt im David und eine entsprechende Option.

    Was mir mit Hausmitteln einfällt, ist eine Frickellösung per AutoIt: Mail im separaten Fenster öffnen, "Speichern unter..." -> *.eml, Datei speichern, Datei Rechtsklick, ans Arvchiv übergeben. Das klappt prinzipiell, nun müsste man nur noch den Aufruf des Scripts in das Kontextmenü der Nachrichtenliste im David-Client hineinbekommen. Ist das für Normalsterbliche möglich, oder muss man dazu eine eigene Lösung programmieren?

    Hat alternativ jemand eine bessere Idee als oben beschrieben? So ganz glücklich bin ich mit der AutoIt-Variante nämlich nicht, da kann alles möglich schief gehen, wenn der Anwender während des Script-Ablaufs nicht "stillhält".

  • Moin!

    Was funktioniert, ist eine Mail per drag'n'drop auf den Desktop zu ziehen, so eine .eml-Datei zu erstellen, und diese per Rechtsklick und "senden an..." ins Archivsystem zu übergeben. Das ist dem Kunden aber manuell zu umständlich, und nun sucht er nach einer vereinfachten Variante, am besten mittles eines simplen Rechtsklicks auf die Nachricht direkt im David und eine entsprechende Option.
    [..]
    Ist das für Normalsterbliche möglich, oder muss man dazu eine eigene Lösung programmieren?

    Das bekommste schon hin. Nachfolgender Code - nicht von mir - schreibt die aktuell geöffnete Mail als EML in einen Ordner

    Code
    Sub Initialize(oInfoCenter, key) Set oBar = oInfoCenter.GetCommandBar("MessageView/Standard") oBar.Insert 4, "Ablage", key, "ablage.ico", "OnAblageButton", true End Sub sub OnAblageButton(oInfoCenter, oReader) if oReader.Item.Type <> DvEMailItem then oInfoCenter.MsgBox "Dieser Eintrag ist keine eMail", "OkExclamation" exit sub end if Set oItem = oReader.Item.ChangeType(DvUnknownItem) Set oConverter = oInfoCenter.Account.CreateExporter Set oCollection = oConverter.GetCollection oCollection.Add oItem oConverter.Convert FormatEML, "C:\Mail.eml" end sub
    Code
    oConverter.Convert FormatEML, "C:\Mail.eml"

    Hier passte halt den Pfad an und den Dateinamen kannste ja auch zur Laufzeit generieren - iwas aus USER + Datum + Uhrzeit + RANDOM, oder was weiß ich.
    Wenn der Benutzer dann eine Mail öffnet, hat er in dem Fenster einen "Button", welcher in diesem Fall mit "Ablage" beschriftet ist. Klickt er drauf, wird sie in den angegebenen Pfad als EML geschrieben.

    O.g. Code auf den Server im Verzeichnis "DAVID\CODE\SCRIPTS" als VBS ablegen und den Benutzern im DAVID Admin zuordnen Benutzer -> Benutzerdaten -> david Client konfigurieren -> Skripte -> Individuelle Scripts -> Hinzufügen und deine VBS auswählen.

    O.g. mal so als Anreiz :D

  • Hm, wobei: Eine Frage hab' ich doch noch. Der Export läuft derzeit von allen Plätzen in ein bestimmtes Verzeichnis, das dann vom Archivierungssystem gescannt und geleert wird. Somit ist es vermutlich in 99% der Fälle kein Problem, wenn der Dateiname bei allen Usern und Aktionen immer der gleiche ist, aber es KÖNNTE halt auch vorkommen, dass jemand die Datei "export.eml" überschreibt, bevor das Archivsystem sie weggefischt hat.

    Daher schreibst du ja sehr richtig, dass es gut wäre, den Dateinamen mit weiteren Feldern zu ergänzen. Ich würde also gerne entweder eine Zufallszahl oder Datum/Zeit (sekundengenau) in den Dateinamen einbacken. Statt export.eml demnach export20170112103337.eml oder export28461876.eml oder so.

    Gefunden habe ich aber nur Befehle für das Einbinden von weiteren Informationen aus der E-Mail, also z. B. oConverter.Convert FormatEML, "c:\test\test" & oItem.subject - was nach meinem Verständnis den Betreff mit in den Dateinamen packt.

    Hast du zufällig die Syntax für eine Zufallszahl oder das Datum im Dateinamen parat? Mein Dank würde dir ewig nachschleichen. ;)

  • Moin

    Gefunden habe ich aber nur Befehle für das Einbinden von weiteren Informationen aus der E-Mail, also z. B. oConverter.Convert FormatEML, "c:\test\test" & oItem.subject - was nach meinem Verständnis den Betreff mit in den Dateinamen packt.

    Also meiner Meinung nach müsste es

    Zitat

    oConverter.Convert FormatEML, "c:\test\test" & oMsgItem.Subject &".eml"

    heißen aber sei es drum :D

    Datum unformatiert ist IMO "date", also

    Zitat

    oConverter.Convert FormatEML, "c:\test\test" & date &".eml"


    Zufallsnummer wäre "rnd". Aber "rnd" müsste man optimalerweise noch anpassen sonst kommt ne Zahl ala 0.34563985 raus. Also mit "." Muss also formatiert werden.


    Zitat

    oConverter.Convert FormatEML, "c:\test\test" & rnd &".eml"


    Aber alles nur aus dem Kopf, nix gegengeprüft.

  • Sauber! RND reicht mir schon - die so generierte Zahl ist kommagetrennt, es kommt also ein Dateiname wie test0,3716439.eml dabei heraus. Passt.

    Cossys' Frage ist auch interessant, das würde noch einen Doppelklick einsparen... Hat bei uns aber keine Priorität, immerhin ersparen wir dem Anwender das mühsame drag'n'drop, die Lösung im Nachrichteneditor ist also schon eine sehr praxisnahe.

    Besten Dank noch einmal! :)

  • Moin!

    Cossys' Frage ist auch interessant, das würde noch einen Doppelklick einsparen...

    Könnte statt

    Zitat

    Set oBar = oInfoCenter.GetCommandBar("MessageView/Standard")

    auch

    Zitat

    Set oBar = oInfoCenter.GetCommandBar("Menu/Global")

    sein...

    ODER

    Zitat

    Set oBar = oInfoCenter.GetCommandBar("Menu/Main")

    Obwohl ich glaube, dass "Main" der Bereich ist, wo "Datei, Persönlich, Bearbeiten" usw. steht. Also das Hauptmenü. Global könnte passen.


    Aber ob es funzt kann ich nicht sagen. Bin zu faul zum testen :D

    Wenns klappt schick ich euch mein PayPal Account.

    Einmal editiert, zuletzt von stsm (12. Januar 2017 um 15:44)

  • Hallo zusammen,

    der "Wunsch Eintrag" wäre Set oBar = oInfoCenter.GetCommandBar("Main/Entries").

    Leider reicht ein Ändern dieses Codeteils nicht aus. Der Button funktioniert an der Stelle nicht.

    Ich vermute, daß für das Skript jetzt nicht klar ist, welches Objekt aktiv ist.
    Leider versteh ich das Objektmodell noch nicht wirklich :(

  • Moin!

    Ich hab euch da mal was gebaut - hab also meine Faulheit überwunden :D
    Die Prüfung, ob es sich bei den Objekten um eine Mail handelt, müsst ihr aber selber einbauen.

    Export einer Mail oder mehrerer Mails, durch drücken der STRG Taste, gleichzeitig möglich und - oh Wunder - direkt aus dem Info Center.

    Greetz

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!