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

  • So, mit der Datei das habe ich jetzt so gemacht. Weil % und $ verursachen bei mir großen Schaden.


    Code
    Dim fileNum As Integer
    	Dim text As String
    
    	fileNum = Freefile()
    
    	Open "D:\\Daten\\Test.txt" For Input As fileNum
    
    	Do While Not Eof(fileNum)
    		Line Input #fileNum, text
    	Loop


    Aber jetzt läuft der Agent nicht mehr, denn jetzt geht keine Mail mehr raus... Man, ich glaube echt ich bin zu blöd für alles....

  • Hier ist mal mein Code:



    Der Code ist natürlich noch verbesserungs fähig, wenn mal alles läuft werde ich noch gleichen Code in Routinen auslagern. Will erstmal nur das alles läuft, die Schönheit folgt noch...

  • Wie gesagt:


    Aus dem Designer heraus kann es so nicht gehen, weil da DocumentContext immer Nothing ist. Es ist ja weder ein Dokument marikiert noch offen noch sonstirgendwie für den Agenten ersichtlich.


    Und damit fällt dann alles auf die Nase was auf diesem doc aufbaut

  • maildoc.sendto = "Handynummer@sms" 'Empfänger e-Mail


    maildoc.sendto = text 'Empfänger e-Mail aus File, oder liege ich da falsch?

  • Ja klar, das muss später noch geändert werden. Normal steht das auch ne Handynummer noch fest im Code drin, wollte die nur nich hier posten ;)


    Also der Fehler muss auf jeden Fall im Datei einlesen sein, denn wenn ich das weglasse bekomme ich eine SMS

  • Open "D:\Daten\Test.txt" For Input As fileNum durch


    Open "D:\\Daten\\Test.txt" For Input As fileNum ersetzen



    das doc ist gesetzt?

  • Hab ich auch schon versucht - klappt nicht :(


    Jo, das ist gesetzt


    So, hab mich jetzt mal mit Kommentieren/Auskommentieren durch gehangelt:


    Der Agent funktioniert nicht mehr, wenn ich folgende Zeile einkommentiere:


    Open "D:\\Daten\\Test.txt" For Input As fileNum%



    Natürlich habe ich auch dahinter dann das Close stehen. Trotzdem läufts nit mehr :(

  • äh, bei mir ist das Script mit der zeile


    Set doc = db.getDocumentbyUNID("xxxxxxxxxxxxxxx") korrekt durchgelaufen, hat aber nichts verschickt, weil er bei den Bedingungen nicht klarkam.

  • bei "Betreff2" wird strPos nicht initialisiert, das erfolgt nur im ersten Bedingungsteil
    dann haut es ihn natürlich auf die Nase


    intPos = strPos + 1

  • Die Bedingungen in der If-Abfrage habe ich auch nur vereinfacht dargestellt. Die stimmen schon alle, denn wie gesagt: Es läuft durch, aber sobald ich das Open-Statement einbaue läufts nichtm ehr

  • ich habe mir soeben eine Email geschickt mit der Emailadresse aus


    'Einlesen der Textdatei mit dem Empfänger
    Dim fileNum As Integer
    Dim text As String

    fileNum = Freefile()

    Open "C:\\daten\\Test.txt" For Input As fileNum

    Do While Not Eof(fileNum)
    Line Input #fileNum, text
    Loop

    Close FileNum




    mach doch mal ein 'Print text' hinter 'close FileNum', damit du siehst, was er da drin hat
    vielleicht bekommt er eine falsche adresse

  • Also das Open Statement mit doppelten Backslashes im LotusScript ist schon mal falsch. Hier dürfen es nur einfache sein und der Pfad muss existieren, sowie der User unter dem der Domino dann läuft braucht Zugriffdarauf.
    Weiterhin muss der Signer des Agents das Recht haben unbeschränkte Agenten auszuführen und in den Agent Eigenschaften muss ebenfalls als RunTime Security Level 2. Allow Restricted Operations eingestellt sein.


    Nur dann wird es überhaupt rechtemäßig auf dem Server gehen.
    Lokal wird das immer funktionieren, da das ganze dann mit den Rechten des aktuellen Benutzers ausgeführt wird

  • Also das Open Statement mit doppelten Backslashes im LotusScript ist schon mal falsch. Hier dürfen es nur einfache sein und der Pfad muss existieren, sowie der User unter dem der Domino dann läuft braucht Zugriffdarauf.


    bei mir läuft es genauso (es ist lokal, denn es geht doch jetzt erst einmal darum, den code prinzipiell zum Laufen zu bekommen, oder sehe ich das falsch?).

  • Schön wenn es bei dir so läuft, aber trotzdem ist die Syntax laut Definition falsch und wenn dann sollte man das auch gleich richtig machen, denn wenn das dann nur in bestimmten Umgebungen geht und seine eben nicht dazu gehört ist das ein Fehler den man ewig sucht.


    Und wie gesagt: Die Probleme daß es auf dem Server nicht läuft liegt nicht mehr am falschen Code sondern eben an falsch eingestellten Rechten

  • Ich wollte dir damit nicht zu nahe treten, und du darfst gerne auch weitere Hilfen geben, die ja bei den Code Sachen auch recht hilfreich für den Fragesteller waren.


    Nur an funktionierendem Code dann irgendwelche Dinge reinzubauen ist eine ungünstige Variante, solange nicht die Umgebungsbedigungen geprüft sind, daß es nicht an diesen liegt.


    Denn sonst verschlimmbessert man den Code nur noch. Vor allem wenn man eben weiß daß er ja eigentlich geht