Beiträge von Teardrop

    Hallo Gerold,


    erstmal die "schlechten" Nachrichten. Bücher gibt es meines Wissens nach nicht und david bringt zwar eine SQL Datenbank mit, die ist aber nur für den Suchindex und den Chat zuständig. Alles andere ist wie eh und je in Dateien abgespeichert (die man allerdings nicht so ohne weiteres lesen und bearbeiten kann, da keine Standardformate wie XML, EML, etc.).


    Kommen wir zu den guten Nachrichten:
    Die Doku und die Beispiele darin sind recht gut, wenn man sich einmal eingefunden hat. Ich empfehle als Startpunkt das Object Diagram (die Objekte kann man dort auch anklicken und kommt zur entsprechenden Beschreibung). Hier sieht man die Abhängigkeiten und im Prinzip muss man sich auch bei der Programmierung mit der API immer von oben nach unten "durchhangeln".

    Z.b. muss man zunächst ein Application Objekt instanziieren um davon ein Account ableiten, dann ein Archive-Objekt und davon dann MessageItems, etc.


    Zusätzlich dann die Examples in den verschiedenen Sprachen - auch wenn hier Powershell nicht zur Verfügung steht, sollte man sich aus VB und C# das meiste herleiten können (ich habe das z.B. auch schon mit PHP genutzt).


    Die Beispiele bei den einzelnen Objekten und Methoden sind dann oft nur in C/C++, da wirds dann etwas schwieriger mit dem herleiten.


    Alle Typen in David sind MessageItems. Die expliziten Typen wie MailItem, FaxItem, etc. werden vom MessageItem abgeleitet.

    D.h. mit dem MessageItem und MessageItem2 bekommst Du auch Faxe.


    Grundsätzlich bevorzuge ich das MessageItem2, weil es ca. um den Faktor 10 schneller arbeitet. Hier kann man, wie auch beim MessageItem die Fields benutzen (siehe in der Doku innerhalb Objects "Fields", "Field", und "Field2" und ganz unten unter dem Object Diagram "Field ID's).


    Für Deine Anforderung ganz speziell sollten dann noch der Eintrag "DvItemFilterBits" (innerhalb Types) interessant sein.

    Wenn ich es richtig im Kopf habe, ist eine zeitliche Selektion aber nicht oder nur bedingt möglich oder hat bei mir nicht immer geklappt, kann mich nicht mehr genau erinnern. Da muss man im Zweifelsfall über alle Einträge iterieren und das Datum vergleichen. Für sowas auf jeden Fall das MessageItem2 nutzen, wg. der Performance.


    Damit solltest Du einen guten Startpunkt haben.


    Der Hauptknackpunkt den Du jetzt noch hast, ist die Verwendung der API in Powershell.

    Ich bin einigermaßen bewandert in der Nutzung der Powershell, allerdings nicht mit externen Bibliotheken.

    Soweit mir bekannt, kann man aber alle Bibliotheken verwenden, die man auch in .NET verwenden kann, oder?


    In PHP muss man z.B. ein COM-Objekt erzeugen, foglend mal ein Beispiel.

    Und hier noch ein Link einer schnellen Suche zu dem Thema in Verbindung mit Powershell

    PowerShell: How to use a COM Object
    By using the windows PowerShell it is possible to access COM Objects. Within this article I want to show you how to create, use and remove a reference to a COM…
    coders-corner.net



    Bei weiteren Fragen einfach wieder melden. Und wenn Du Erfolg hast, schreib es gerne für die Nachwelt hier mal rein. :)


    Viele Grüße
    Jens

    >> Wie Du dort sehen kannst, wird ein CalenderItem gespeichert und anschließend über die ID des neuen CalenderItem ein MessageItem2 erstellt.

    > Das geht in meinem Fall ja nicht, denn mein MailItem hat ja immer die ID -1, also kann ich kein MessageItem2 abrufen.


    Das war ja noch vom Posting davor, allerdings hatte ich im letzten Posting auch nicht ganz korrekt formuliert bzw. nicht richtig nachgedacht. Das Problem scheint nur beim MailItem zu bestehen, nicht bei jeder vom MessageItems Objekt abgeleiteten Klasse.



    Hab es gerade in meinem API-Testprojekt noch mal mit dem CalendarItem getestet, da klappt es auch.


    Ich melde das mal an Tobit. Keine Ahnung ob es was bringt, aber kann ja nicht schaden. :)


    Bzgl. Deines Problems mit dem MessageItem2:

    Hast Du die API Doku vorliegen, die DvAPI32.chm Datei? Da gibt es ein Beispiel Create IMessageItem2 entry in the personal archive In, schau Dir das mal an. Die Datei kannst Du hier runterladen: https://david3.dev (Client API)


    Um ein MessageItem2 zu erzeugen musst Du die Methode CreateArchiveEntry verwenden, NewItem erzeugt nur MessageItem Objekte. Siehe dazu auch das Archive-Object unter Objects in der Doku.



    Viele Grüße

    Jens

    Hi Jan,


    hab das gerade mal getestet. Beim Verwendung des MailItem ist das in der Tat so (und vermutlich allen Klassen die vom MessageItems Objekt abstammen), beim MessageItem2 jedoch nicht!


    Da wo es geht hab ich das MessageItem2 immer bevorzugt, da die Verarbeitung nach damaligen Tests ca. 10x schneller ist als mit den vom MessageItems Objekt abgeleiteten Klassen.


    Du könntest die neue Nachricht mit dem MessageItem2 erzeugen und dann, wenn nötig auf das MailItem "switchen" (neues MailItem aus der vorhandenen ID oder FileName erzeugen). Bei normalen Mails solltest Du das MailItem aber nicht benötigen, das sollte sich auch alles über die Fields abbilden lassen. Ich meine nur bei Items wie Calendar und Task muss man dann über die speziellen Klassen gehen.


    Viele Grüße
    Jens

    Hi Jan,


    hast Recht, hatte ich auch getestet und gesehen, aber irgendwie hab ichs dann wohl beim Schreiben und raussuchen des KB Links wieder vergessen... :/


    Was für ein Bug ist das denn genau?


    Hab schon länger nichts mehr mit der API gemacht, aber hab mal in meinen Codes gekramt.

    Hab leider keine Beispiel für eine E-Mail sondern nur für einen Kalendereintrag, würde mich aber wundern, wenn das bei der E-Mail nicht auch ginge. Der gezeigt Codeausschnitt ist aus unserem TSS-Work4AllConnector (Sync von Terminen und Adressen zwischen David und dem MSSQL basierten CRM/ERP System work4all) der immer noch im Einsatz ist.


    Wie Du dort sehen kannst, wird ein CalenderItem gespeichert und anschließend über die ID des neuen CalenderItem ein MessageItem2 erstellt.
    Das es sich um ein neues CalenderItem handelt ist hier nicht zu sehen, habe ich aber gerade im Code geprüft



    Viele Grüße
    Jens

    Hi,


    mal als Feedback zu dem Thema 3-fache Größe.


    Ich habe gerade bei einem Eingang die Automatische Ablage konfiguriert und die Bereinigung manuell gestartet. Danach waren die Daten zusammengefasst. Also im Hauptordner der Ablage (Ablage-Ordner) die Zusammenfassung entfernt (nur dort, nicht in den Unterordern), so dass das Kästchen ausgefüllt (nicht leer) ist.


    Dann nochmal die Datenbereinigung laufen lassen.


    Auf Dateiebene gibt es 4 Dateien zu jeder Datei, das ist aber normal, da eine David Nachricht immer aus 2-4 Dateien besteht. Es gibt bei E-Mails immer die .001 und die .0tx. In meinem Fall hat jede Mail noch einen Anhang, daher gibt es noch die .$00 (Index der Anhänge) und eine .$01 (erster Anhang).


    Hier mal ein Screenshot dazu. Anhand des Dateinamens und des Datums kann man auch erkennen, welche Dateien zusammen gehören.



    Wenn Du die Byte-Größe der archive.dat im Ordner durch 430 (Länge eines Eintrages in der archive.dat oder auch archive.dir) teilst, dann erhälst Du die Anzahl der Nachrichten im Client. So kannst Du auch prüfen, ob die archive.dat in Ordnung ist.


    Bzgl. der 3-fachen Größe kann ich hier nicht nachvollziehen.

    Der besagte Ordner hat ungepackt 77MB, die pck Datei 74MB.

    Bei erneuten Packen hatte ich allerdings den Effekt, dass die Größe erstmal doppelt so groß war, da sowohl die Einzeldateien als auch die .pck Datei vorhanden waren. Ein zweiter manueller Durchlauf der Bereinigung hat das aber behoben.


    Ich könnte mir vorstellen, dass die das in zwei unabhängigen Schritten machen bzw. unabhängigen Abschnitten im Code und vielleicht kommt die Löschung vor dem Packen, weshalb es erst beim zweiten Durchlauf passiert.


    Viele Grüße
    Jens

    Hi Jan,


    vielen Dank für die Blumen. Und keine Sorge, wenn ich mal nicht mehr hier bin, dann wirds wohl das Forum auch nicht mehr geben. ;)


    Hattest Du den Beitrag im verlinkten Thread weiter unten von der_dreh gesehen?


    Dazu gibt es in der KB auch einen Eintrag, vieleicht kommst Du damit weiter. Damit kannst Du auf jeden Fall eine Vorlage öffnen.

    Tobit.Software


    Viele Grüße
    Jens

    Hallo Jan,


    schau mal hier:



    Mittlerweile heißt der Kontextmenü Eintrag david® Objekt-Verknüpfung kopieren.


    Dann noch ein Link zur alten Tobit KnowledgeBase

    Tobit.Software


    Und ein direkter Link zu einem passenden Eintrag

    Tobit.Software


    Viele Grüße
    Jens

    Hallo Yuma,


    die Verteilung von Mails funktioniert wie folgt:


    Zunächst nimmt der David Server mittels Postman und SMTP Mails entgegen oder ruft diese mittels Grabbing Server und POP vom Provider ab.
    Im Falle vom POP Abruf kann in den POP Konten bereits eine Zieladresse oder ein Pfad eingetragen sein, wo die Mails landen. Das würde ich aber nicht empfehlen.


    Im nächsten Schritt prüft der Service Layer dann die Empfängeradresse (egal über welchen Empfangsweg und nur, wenn im POP Konto nicht bereits ein Zielpfad eingetragen ist) und vergleicht diese zunächst gegen alle Eingangs-E-Mailadressen der Benutzer ab. Findet er eine passende, bekommt der Benutzer die Mail in seinen Eingang gelegt.


    Findet er keinen passenden Eintrag schaut vergleicht er im nächsten Schritt die Verteilregeln (hier sollten nur Regeln für AB und Fax stehen) und Verteilvorgaben (hier sollten Regeln für E-Mail stehen, wenn nötig) und wendet diese an.


    Wenn auch dort kein Treffer gelandet wird, wird die Mail ins Unverteilt gelegt. Dort werden dann auch noch mögliche Regeln auf dem Ordner (Rechtsklick auf Unverteilt im Client > Regeln) geprüft und verarbeitet.


    Viele Grüße
    Jens

    Hallo,


    spannende Erkenntnis. Kann mir gut vorstellen, dass das bei der Entwicklung nicht beachtet wurde.
    Ich gebe Dir recht, dass entweder das UI entsprechend reagieren oder die Funktion anders ablaufen sollte, allerdings ist es auch nicht leicht bei der Entwicklung alles Zusammenhänge zu beachten und umzusetzen. Gerade so ein Verhalten/Fehler wird bei der Entwicklung und vermutlich auch bei den Tests schnell durchgehen, da die gepackten Dateien nur bei wenigen Ordnern zum tragen kommen.

    Du kannst ja mal bei Tobit eine Supportanfrage öffnen und diese Erkenntnis mitteilen.


    Bzgl. der Bereinigung hatte ich bisher noch nicht festgestellt, dass es da Unterschiede gibt. Ich meine aber, dass z.B. das "entpacken" (aufheben des Zusammenfassens) durchaus durch das manuelle Anstoßen der Bereinigung durchgeführt wird.

    Einen anderen Weg als die Uhrzeit zu ändern wüsste ich jetzt aber auch nicht.


    Viele Grüße

    Jens

    Hallo,


    mir ist das nicht bekannt, ich habe aber auch noch nie versucht einen anderen Wert als die vorgegebenen zu verwenden.
    Vielleicht schlägt die Funktion, die die Daten zusammenfasst, durch den hohen Wert fehl...das kann nur Tobit beantworten. Aber da man hier den Wert manuell überschreibt, kann ich schon vermuten, wie die Antwort ausfallen wird. ;)


    Vielleicht hat es aber auch etwas mit der Zusammenfassung selbst zu tun. Waren die Daten in dem Ordner bereits "gepackt"? Enthielt der Ordner eine große .pck Datei oder die bekannten, vielen kleinen .001, .0tx, etc.?


    Ob die Bereinigung mit dem maximalen Eintragsalter auch bei gepackten / zusammengefassten Dateien (.pck) funktioniert, weiß ich nicht.

    Ein manuelles Löschen der Dateien im Client ist in dem Falle jedenfalls nicht möglich. I.d.R. sind die Ordner im Client in diesem Fall auch blau eingefärbt.


    Viele Grüße
    Jens

    Hallo Stefan,


    in der Regel hat es wie gesagt damit zu tun, dass das Passwort nicht in jedem Ordner gleich ist.

    Ansonsten kommt es noch drauf an, wie alt die David Version ist. Im Laufe der Jahrehat sich an der IMAP Implementation auch das ein oder andere verändert.

    Und zu guter Letzt kann es auch immer mal an defekten Einträgen oder Indexdateien "hängen" bleiben.


    Ggf. mal entsprechende Tools wie HelloExchange testen oder so.

    Aber da bin ich auch nicht der Experte, ich habe bisher keine Migration weg von David gemacht.


    Viele Grüße
    Jens

    Hallo ichain,


    Du musst im Davd Admin und dort im Mail Access Server ein Alias anlegen, welches auf den David Root (oder was auch immer Du willst) zeigt.

    Als Benutzername für IMAP nimmst Du dann den Aliasnamen und als Passwort das Passwort welches in den Eigenschaften des Ordners unter Zugang eingetragen ist. Zu beachten ist, dass dieses Passwort auch in allen Unterordnern gleich gesetzt sein muss.


    Viele Grüße
    Jens

    Hi Björn,


    naja, ich werde auch niemals Freund von Exchange, aber letztlich nur, weil ich mich nicht umfassend damit beschäftigen will. ;)


    Bist Du sicher, dass es um Empfangen UND senden ging oder ggf. nur um das Empfangen? In dem Falle fehlt vermutlich einfach in der Grabbing Server Konfiguration das Abholinterval. Das wird aber eigentlich bei dem von mir beschriebenen Vorgehen mit übernommen.


    Beim Postman gibt es auch eine Einstellung, damit die Mail sofort gesendet werden. Die ist aber normalerweise standardmäßig drin.


    Die Konfigurationseinstellungen der Module erreichst Du im Admin über Rechtsklick auf den jeweiligen Punkt (Postman, Grabbing Server), dann Konfigurieren.


    So ohne das System selbst anschauen zu können, ist es schwierig zu beurteilen.


    Ich will mich nicht aufdrängen, aber: Externes KnowHow einkaufen kostet zwar Geld, aber die Zeit die Du jetzt schon investiert hast, war vermutlich mehr als eine externe Beauftragung für die komplette Migration gekostet hätte. Und dabei hättest Du vermutlich auch noch die ein oder andere interessante Info zur Funktionsweise von David bekommen. ;)


    Viele Grüße
    Jens

    Ich glaube da hast Du etwas falsch verstanden. Du hast ja jetzt schon eine Migration mit allen Anpassungen und Installation durchgeführt, da kannst Du jetzt nicht mehr rein kopieren, damit machst Du Dir das wieder kaputt.


    Siehe Anleitung oben, da kommt der Punkt installieren und Anpassen mit Arcutil erst nach dem finalen Kopieren.
    Wenn Du das derzeitige Zielverzeichnis löscht und einfach alles nochmal machst, ist das natürlich kein Problem. Ich würde jetzt aber nicht nochmal Robocopy mit bestehendem Zielverzeichnis laufen lassen, das könnte ein Chaos geben.


    SQL Server ist nur Volltextsuche und Chat, richtig, siehe Punkt 2 in meiner Anleitung.


    Übrigens, sollte mal ein Dienst nicht in der Liste erscheinen / nicht als Windows Dienst registriert worden sein, einfach einen Doppelklick auf die entsprechende EXE machen, dann wird der entsprechende Windows Dienst angelegt.


    Viele Grüße und viel Erfolg

    Jens

    Hallo Björn,


    grundsätzliches Vorgehen ist:

    1. Daten mit robocopy kopieren (das kann jederzeit im Vorfeld passieren, die Dienste müssen nicht abgeschaltet werden)
      1. sofern Domäne vorhanden und gleich bleibt, /sec oder /copyall benutzen um die Berechtigungen mit zu nehmen
      2. robocopy lasse ich immer mit /mir (gleich mit /e /purge) laufen, damit man eine 1:1 Kopie hat, speziell wenn man es mehrmals laufen lässt, s.u.
    2. Am Tag der Umstellung Dienste aus und robocopy noch mal laufen lassen, dauert dann nur wenige Minuten da nur die geänderten Daten übernommen werden
      1. SQL Serverinstanz von David ebenfalls vorher beenden
      2. Falls Chat genutzt wird, die Chat Datenbank (SQL) vorher exportieren
      3. Die Tobit Archive Database muss nicht gesichert werden, das ist der Volltextindex und lässt man einfach neu aufbauen (daher muss man hier auch keine Pfade anpassen, wenn man mit einem separaten SQL Server arbeitet, einfach den Volltextindex über den Admin zurücksetzen).
    3. Auf dem neuen Server in das kopierte Verzeichnis installieren
      1. vorher SQL Datenbankverzeichnis unter Code\Database umbenennen
      2. Installiert werden muss natürlich die gleiche Version die Du auch vorher installiert hattest, sonst bekommst Du die DLL Fehlermeldungen
    4. Wenn der Servername sich ändert, mit Arcutil den Servernamen überall ersetzen, als Startpfad den David-Ordner selbst angeben, nicht nur Archive.
      1. Auch im Admin gibt es verschiedene Stellen wo der Servername drin steht, ebenso weitere Dateien auf Dateiebene, die mit dem Arcutil nicht verändert werden können. Die muss man manuell oder mit anderen Tools anpassen.
    5. Wenn es keine Domäne gibt oder eine neue, dann muss man noch Berechtigungen setzen und die Benutzer neu zuweisen (aber das ist bei euch ja nicht der Fall).

    Keine Gewähr auf Vollständigkeit, habs gerade aus dem Kopf runter geschrieben. ;)


    Die allereinfachste Migration ist unter folgenden Voraussetzungen:

    • Alter und neuer Server sind virtualisiert
    • Domäne vorhanden und bleibt gleich
    • Servername bleibt gleich

    Hier würde ich lediglich die Datenplatte vom alten in den neuen Server hängen, drüber installieren, fertig. :)


    Bei Bedarf könntest Du die Migration auch von uns durchführen lassen.


    Viele Grüße
    Jens

    Hallo Guido,


    sorry, irgendwie klappt meine E-Mailbenachrichtigung vom Forum nicht mehr und hab hier länger nicht reingeschaut...


    Vermutlich hat sich das Thema zwischenzeitlich erledigt, aber vielleicht stolpert dennoch mal jemand darüber:


    CardDAV und Active Sync sind zwei komplett verschiedene Sachen. Um Active Sync zu nutzen, muss man im Smartphone ein Kontotyp "Microsoft Exchange" (manchmal noch mit dem Zusatz "Active Sync" auswählen und einrichten. Dann sollte es auch klappen.


    David unterstützt auch CardDAV und CalDAV aus den Anfangstagen des iOS, das habe ich aber seit Ewigkeiten nicht mehr benutzt, da Active Sync die beste Wahl ist, auch für iOS Geräte.


    Viele Grüße

    Jens

    Hallo,


    sorry, irgendwie klappt meine E-Mailbenachrichtigung vom Forum nicht mehr und hab hier länger nicht reingeschaut...


    Regeln greifen beim manuellen Verschieben nicht. Bei einer Regel sollte es gehen und diese kann man mittels "Jetzt anwenden" Button auch manuell auslösen (Achtung, hier bitte aufpassen bei welcher Regel man das macht, bei älteren Versionsständen kann man so auch Autoreplies manuell auslösen an alle Mails die man im entsprechenden Ordner liegen hat!).


    Viele Grüße

    Jens

    Hallo,


    sorry, irgendwie klappt meine E-Mailbenachrichtigung vom Forum nicht mehr und hab hier länger nicht reingeschaut...


    In den Release Notes des aktuellen Rollout 405 steht was von Anpassungen an Postman und Grabbing Server hinsichtlich OAuth. Vielleicht klappt es damit.

    Zitat
    David Grabbing Server - 3488 - 12.09.22

    OAUTH2 Authentifizierung für POP3 Abruf

    Beim POP3 Postfach kann die OAUTH2 Authentifizierung nun auch für Microsoft Konten eingestellt werden.


    Viele Grüße

    Jens