Default Volage eMail

  • Hallo,


    David.fx aktueller Softwarestand (sitecare) Mai.2016


    ich such mir gerade einen Wolf und finde nichts.


    Ich möchte die eMail Vorlage des Benutzers per API laden. Und zwar diese, die man im InfoCenter unter Optionen/Einstellungen/Vorlagen angeben kann.


    In einem früheren Leben wurde das anscheinend in der Reg eingetragen
    HKCU\Software\Tobit\Tobit Info Center\Servers\SERVERNAME
    TemplateFN [REG_SZ] \\SERVERNAME\DAVID\ARCHIVE\USER\10008000\SYSTEM\TEMPLATE\I008D89A.001


    Das sollte die Standardvorlage für neue eMail sein. Das habe ich noch auf meinem Rechner gefunden.


    Nur heute wird da nichts mehr eingetragen. Diese 6 Vorlagen werden in der Reg anscheinend nicht mehr gepflegt.


    Wie komme ich an diese Vorlagen-Name-Speicherort mit der API ran ?


    Zusatzfrage: ich habe die dvapi32 für fx12 aus dem Jahr 2012. Gibt es da nichts neueres?


    Danke und schönen Feiertag
    -Uwe

  • Hallo Uwe


    seit einigen Rollouts kann man bestimmte Benutzerdaten, u.a. die Vorlagen, zentral über den Admin steuern. Daher sind die Informationen von der Registry weg gewandert, vermutlich in die dic.cfg (bisher nicht geprüft.


    ...


    Habe das gerade mal geprüft, und es ist auch so. Da es bisher keine neue API gibt, wird es schwer da ran zu kommen bzw. das zu verändern. Muss man mittels Hexreader / Binaryreader machen (zumindest das schreiben). Die Länge der Einträge ist aber nicht wie meist 430 Bytes, vermutlich länger.


    Es gibt dazu auch einen KB Artikel: Q-111.924


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

  • Hallo Jens,


    wie immer bist Du unbezahlbar. Ich Dummerchen habe im David-Server nach dem Klarnamen der Vorlage gesucht und in der KB nach TemplateFN. Da konnte ich nirgends fündig werden.


    Dank Deiner Hilfe komme ich nun weiter. Ich bin mir nur unsicher, ob man die dic.cfg shared_mit_ überschreibschutz eröffnen kann, und ob ich ein fseek() immer auf eine bestimmte Position zum einlesen fahren kann.


    Im schlechtesten Fall eröffne ich shared_ohne_schutz und suche nach TemplateFN


    Vielen Dank nochmals


    -Uwe

  • Hallo Peter,


    verzeihe, ich komme erst heute zu Deiner Frage.


    Über den Aufbau dieser Datei weiß ich nichts, und ich lese auch nur, kein reinschreiben. Ich lade diese Datei einfach komplett in den Speicher und suche in meinem Fall nach "templateFN". Hinter diesem String steht der PfadDateiName der Standardvorlage. Diesen Pfadteil wandele ich für das Archivsystem um und enumeriere alle Eintrage, bis ich den passenden Eintrag (Dateiname) gefunden habe. Die nun gefundene Standardvorlage lese ich als Plain-Text bzw. Html-Text ein und mische dieses in eine neu zu erstellende eMail.


    templateFN und der PfadDateiName sind C-Strings, soll heißen, beide haben eine NULL Terminator anhängend.


    Das funktioniert für uns (Inhouse)


    Gruß
    -Uwe

  • Hallo Peter,


    ein C String wird mit HEX 0 (NULL) als Endemarker versehen. In Unicode sind es zweimal NULL. Tobit nutzt aber nicht UNICODE für diese Datei, also
    lade die Datei komplett als "STRING" Deiner benutzen Sprache in den Speicher. Sicherlich gibt es eine StringSuchFunktion in Deiner Sprache. Das Return ist ungleich 0 (oder != -1) wenn die Suche Erfolg hatte und gibt die Position des 1. Zeichens des gesuchten Begriffs wider. Addiere zur Länge das Suchbegriffs 1
    hinzu und Du stehst mit dem Zeiger auf das erste Zeichen der Antwort zum auslesen. Jetzt liest Du Byteweise solange ein, bis Du auf HEX 0 (0x00) stößt.


    Pseudocode Suche nach "templateFN" - und auch nicht gegen Pufferüberlauf geschützt


    i = Suche("templateFN" in strDateiValue)
    if i <> 0 then
    i = i + length("templateFN") + 1
    cByte = mid(strDateiValue, i, 1)
    while value(cByte) != 0
    strAntwort = strAntwort + cByte
    i = i + 1
    cByte = mid$(strDateiValue, i, 1)
    end while
    end if


    in strAntwort könnte danach so etwas stehen "C:\David\....\4711100\3\45678.txt"
    (tatsächlich steht was anderes dort.
    Jetzt musst Du den Dateipfad davon trennen ("45678.txt" abschneiden). Diesen Pfad übergibst Du einer David Funktion (wenn Du nicht weißt welche, ich müsste nachschauen) und erhältst den Verweis zum passenden Archiv. Und das enumerierst Du durch, bis Du auf den Namen "...\45678.txt" stößt.


    Und wieder sorry für die lange Antwortzeit.


    Ahoj
    -Uwe

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!