Lokale HTML (bzw. Text) Dateien automatisch in Mails einbinden

  • Hallo, ich habe mal wieder eine Frage.
    Der Kunde möchte gern lokal auf dem Client-PC gespeicherte Dateien (HTML oder Text) automatisch als lesbaren Text in ausgehende Mails einbinden.
    Da gibt es wohl einen @@-Befehl wenn ich mich recht erinnere, aber meine Versuche schlagen fehl.
    Hintergrund:

    Ein anderes Programm generiert in unregelmäßigen Abständen gewisse Textausgaben (Format als HTML oder TXT wählbar, Extension frei einstellbar), gespeichert in einem Verzeichnis, wird immer wieder überschrieben. Diese sollen als sofort lesbarer Text in die Mails eingebunden werden, nicht als Anhang. Optimal wäre natürlich HTML wegen der Formatierung. Das soll nur bei fünf von 25 Clients erfolgen.
    Also Mailaufbau wie folgt:
    Anrede
    Mailtext
    eingebundener Text aus Datei
    Signatur

    Gibt es da eine Möglichkeit? Vielleicht sehe ich auch den Wald vor lauter Bäumen nicht oder falsche Syntax oder...

    Danke
    Holger

  • flicflac30 6. April 2022 um 19:07

    Hat den Titel des Themas von „Lokale Text (bzw. HTML) Dateien automatisch in Mails einbinden“ zu „Lokale HTML (bzw. Text) Dateien automatisch in Mails einbinden“ geändert.
  • da fällt mir mir @@ Include Pfad/Dateiname@@ ein.

    Was man damit einbindet wird an der Stelle in der Mail eingebunden an welcher man den Befehl einbaut.

    Allerdings werden @@ Befehle@@ grundsätzlich vom Service Layer ausgewertet. Entsprechend muss die Datei unter Pfad/Dateiname dann auch vom Service Layer und mit dessen Rechten lesbar sein. Das muss folglich bei der Angabe des Pfades beachtet werden.

  • Mit dem Include Befehl funktioniert dann aber nur mit Plain Text Mails, weil der Service Layer die nur in den Plain Text Teil der Nachricht einfügt. Der HTML Teil wird vom Client generiert.
    Zusätzlich hast du dann auch noch Probleme mit den Umlauten in der Include Datei. Wenn ich das recht erinnere musste man die OEM kodiert speichern, also mit dem Editor aus der Kommandozeile.

  • Das Ganze könnte man aber mit diesem kleinen David Client Script realisieren:

    sub Initialize(oInfoCenter, vkey)

    oInfoCenter.RegisterEvent "MessageEditor/OnLoad", vKey, "OnEditorLoad"

    end sub

    sub OnEditorLoad(oInfoCenter, oContext)

    oInfoCenter.DoEvents()

    Set oItem = oContext.Item

    if oInfoCenter.Account.QueryItemState(oItem) <> DvItemStateSaved then

    myHTMLText = oItem.BodyText.HTMLText

    if instr(1, myHTMLText, "##dsetextwizzard##", 1)>0 then 'Prüfen ob Ersetzung nötig

    strdatei="c:\test\test.txt" ' Datei deren Textinhalt ersetzt werden soll

    Const ForReading = 1

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set objTest = objFSO.GetFile(strdatei)

    If objTest.Size > 0 Then

    Set objFile = objFSO.OpenTextFile(strdatei, ForReading)

    strText = objFile.ReadAll

    objFile.Close

    end if

    end if

    myHTMLText = Replace(myHTMLText,"##dsetextwizzard##", strText)

    oItem.BodyText.HTMLText = myHTMLText

    oContext.Update

    end if

    end sub

  • Hallo

    Ich habe das mal als *.TXT auf dem Lokalen Rechner als auch auf dem Server probiert.
    @@ Include C:\David\Includes\import.txt@@
    Hat so leider nicht funktioniert. :(
    Der Servicelayer sollte auf das Verzeichnis doch alle Rechte haben.
    Hätte jemand noch eine Idee?
    Gruß flic

Jetzt mitmachen!

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