Agenten erstellen, der aus einer eingehenden E-Mail die Betreffzeile ausliest und ein Mail verschick

  • axo:


    Aus VBA kenne ich eine Funktion, die heißt Mid, da kann man einen Teil aus dem String heraus extrahieren, aber die will Lotus hier nicht



    aus der Hilfe:


    Mid function


    Extracts a string from within another string, beginning with the character at a specified position.
    Syntax
    Mid[$] ( expr , start [ , length ] )
    Elements
    expr
    Any numeric or string expression. LotusScript converts a numeric to a string before performing the extraction.
    start
    The position of the first character to extract from the string, counting from 1 for the leftmost character.
    length
    The number of characters to extract from the string.
    Return value
    Mid returns a Variant of DataType 8 (a string), and Mid$ returns a String.
    If there are fewer than length characters in the string beginning at the start position, or if you omit the length argument, the function returns a string consisting of the characters from start to the end of expr.
    If start is greater than the length of expr, the function returns the empty string ("").



    VB und Lotus Script sind ja nicht SOOO unterschiedlich


    in der Hilfe kannst du dich auch immer gut an den Referenzen unten langhangeln, die auf benachbarte Funktionen oder Formelsprache verweisen

  • Hallihallo!
    Ich bins schon wieder :)


    Wie es so ist, wenn man einen Schritt schafft, kommen sofort die nächsten Wünsche ;) Ist es irgendwie möglich, die Empfänger-E-Mail Adresse in meinem Lotus-Script variabel zu gestalten? Ich habe mir das so vorgestellt: Ich denke, ich werde nicht darum herum kommen, den Empfänger in einer Datei zu speichern, damit das Script jedes Mal beim Durchlaufen den Empfänger ausliest. Jetzt würde ich gerne wissen, ob man sich nicht über den Designer, eine Kachel erstellen kann, über die man dann eine Art Eingabemaske aufruft, in der man die E-Mail eintippen kann, und die dann in die Datei geschrieben wird...

  • Gerade habe ich überlegt, warum du den Anwender die email eintippen lässt, statt einfach das Ganze weiterzuleiten.


    Mach dir Konfigurationsdokumente, aus denen kannst du die Mailadresse dann auslesen.

  • Oh oh, jetzt hab ich glaub ich ein Problem ;) Ich habe noch nie was von Konfigurationsdokumenten gehört *g*


    Das Problem ist auch, dass die E-Mail Adresse einmal (vorher) festgelegt werden soll, wohin die Mails weitergeleitet werden, d.h. es soll nicht jedes Mal wenn der Agent durchlaufen wird, die E-Mail-Adresse eingegeben/ausgewählt werden, sondern der Agent soll auf eine Quelle (Datei!?!?) zugreifen, aus der er die E-Mail-Adresse ausliest. Später soll es nämlich nicht nur eine E-Mail-Adresse sein, auf die weitergeleitet wird, sondern auch eine Handynr (per SMS dann).


    Es müsste also irgendwas "losgelöstes" vom Agenten geben, mit dem man den Empfänger verwaltet, und darauf greift mein schöner Agent dann zu :) Falls das mit den erwähnten Konfig-Dokumenten geht - umso besser... :)


    LG

  • Ich würde das ausserhalb der Mail-DB stellen, eine Mini-Db mit einer Eingabemaske. soll jeder anwender seinen eigenen Empfänger pflegen?
    Dann denn Anwender in einem Item auf dem Dokument verewigen, ein eingabefeld für die Mailaddi und eine versteckte ansicht, sortiert nach Anwendern. Der Agent sucht nach dem Eigentümer der Mailbox, liest die addi aus und verwendet diese für den Empfänger.
    Die Eingabe würde ich über einen Button machen, so dass immer kontrolliert wird, ob bereits ein Dokument für den Anwender da ist, ansonsten wird ein Dokument neu erstellt. (um sicherzustellen, dass immer nur ein dokument da ist) .


    Je nachdem, was du genau machen willst, kannst du auch über Profildokumente arbeiten, aber diese werden gecacht, bei häufigem Ändern hast du evt. alte Werte drin.


    axco: konfigurationsdokumente sind einfach normale Dokumente, die du zum steuern/konfigurieren verwendest.
    Profildokumente sind Spezialdokumente, kommen nur einmal pro DB vor, können nicht in Ansichten angezeigt werden und haben Vor- und Nachteile.

  • Ujujuj, das waren wieder schön viele Infos :) Danke dafür!


    Werde mich dann auch wohl dafür entscheiden, das außerhalb der Mail-DB zu machen. Es gibt nämlich immer nur ein Empfänger der Mails, der sich aber schonmal (maximal wöchentlich) ändern kann. Deshalb werde ich wohl ein kleines Progrämmchen schreiben, dass die Nummern über eine Textdatei verwaltet, und der Agent liest dann die Nummer/E-Mail-Addi aus der Datei aus...


    Da habe ich direkt eine Frage:


    Habe mir das hier aus einer VBA Datei kopiert, die ich erstellt habe. Das wollte ich jetzt verwenden, um die Datei auszulesen, aber bei dem "As Object" wird gemeckert. Wie heißt der Variablentyp in LS?

    Code
    'Datei einlesen
        Dim DateiText As String
        Dim fso As Object
        Dim ts As Object
        Dim strFile As String
    
        strFile = "D:\Daten\Test.txt"
  • Hmm, also das klappt nicht.


    Mit dem Notesstream funktioniert gar nichts. Auf einmal werden nämlich keine Mails mehr verschickt, wenn ich das eingebaut habe. Gibt es nicht irgendwo ein Log, das man sich anschauen kann, oder einen Debugger, mit dem man mal seinen Code Schritt für Schritt durchlaufen kann, im Moment teste ich den nämlich immer, indem ich mir eine E-Mail schicke, und so der Agent durchlaufen wird.


    Als 2. habe ich in der HIlfe nachgeschaut, da steht dann so etwas hier drin:


    Code
    fileNumber% = Freefile
    	Open "DATA.DAT" For Input As fileNumber%
    	fileContents$ = Input(Lof(fileNumber%), fileNumber%)


    Bei dem FileNumber wird aber gemeckert. Und ehrlich gesagt versteh ich auch nicht, was die Prozentzeichen bedeuten :'-(

  • im Designer:
    File--> Tolls --> debug Lotus Script aktivieren


    und dann den Agenten (manuell) starten


    oder print-anweisungen (kommen unten am Client in der Statusleiste)


    oder MSGBox (aber auskommentieren, bevor es nur auf dem server läuft, denn der server drückt nachher nicht auf en OK-Button)


    die % Prozentzeichen deklarieren das ganze als Integer

  • So, ich glaube jetzt habe ich meinen Agenten zerstört...


    Jedes Mal wenn ich jetzt Strg + S für Speichern drücke, passieren bei mir ganz seltsame Dinge: Auf einmal verschwinden Zeilen, bzw. es werden Zeilen zusammen gefasst. Man man man, mein ganzer Code ist jetzt durcheinander... Sch******

  • DAU-in


    Also zu deinen Aussagen mal zwei Korrekturen:


    Profildokumente können auch beliebig oft vorkommen. Nicht nur ein einziges Mal


    Und der Punkt mit den Msgbox'en: Der Server braucht nicht auf den OK Button zu drücken weil die Meldungen einfach nur im Server Log kommen. Klar ist es sauberer die rauszunehmen, aber der Server wird davon weder blockiert noch muss da irgendwas gedrückt werden

  • Sub Initialize

    Dim text As String, fileNum As Integer
    Dim strTest As String

    fileNum% = Freefile()
    Open "C:\\blabla\\filename.txt" For Input As fileNum%
    Do While Not Eof(fileNum%)
    Line Input #fileNum%, text$


    Print text$ ' Prints one line of config.sys
    Loop
    Close fileNum%



    End Sub



    läuft bei mir.
    probiers mit einem eigenen Txtfile, und setz die \ doppelt (\ = Escape)

  • Danke für den Code. Im Moment habe ich halt das Problem das nichts mehr läuft. Hab jetzt erstmal alles Datei-mäßige rausgenommen, um wenigstens es wieder hinzubekommen, dass das Mail/SMS verschicken klappt. Aber nix mehr.... Werde mal schnell versuchen, dass das wieder klappt.


    Aus dem DominoDesigner selber heraus kann ich meinen Agenten nicht starten, da kommen immer Fehlermeldungen, von wegen: "Error Object Variable (91) not set on Line 27"...

  • poste mal den Code.


    was steht denn in Zeile 27?


    edith: und hast du unter Options "Option declare" ohne Hochkommata eingetragen?

  • In Zeile 27 steht strBetreff = doc.Subject(0).


    Hab den Code jedenfalls wieder hinbekommen, weiß auch jetzt warum bei mir die Codezeilen so blöde verrutschen, bzw. verschwinden. Jedes Mal wenn ich etwas mit einer % bzw. $ bzw. # reinkopiere und dann speichere kommt das. Wisst ihr woher das kommen kann?


    Also unter Options steht das bei mir


    Option Public
    Option Declare

  • Natürlich kann dein Agent im Designer nicht gehen, weil er sich das Dokument auf die dafür falsche Art und Weise holt.


    Um das dort zu testen musst du das Dokument während dem Testen auf andere Art und Weise holen, z.B. ein fixes Dokument per GetDocumentByUNID

  • taurec:


    Only one profile document per form can exist for each user of a database. Or, only one profile document can exist for a database if that form is available to all users.