send methode - Auf Fehler prüfen

  • Hallo,


    ich schraub derzeit an einem Agenten, der mir mails an Adressen weiterschickt. Die "neuen" Adressen sind im subject angeben und werden erfolgreich umgesetzt. D.h. diese Mails werden erfolgreich (auch mit Dateianhang) erstellt und verschickt. Jetzt wollt ich das LotusScript noch ein wenig mit Fehlertoleranz versehen.


    Wenn nun dort eine (lokale) Adresse angegeben ist, die aber nicht im (lokalen) Adressbuch existiert, dann wird leider kein NonDelivery Report erzeugt. Lasse ich den Agenten manuell ablaufen, dann kommt in dem Fenster (nach Ablauf des Agenten) eine entsprechende Meldung, das der Empfänger nicht zu finden war. Ist ja ganz prima, aber der Agent soll ja zyklisch ablaufen und da sitzt dann keiner davor.


    Kann ich diese Meldung auch irgendwie via LotusScript bekommen, um dann Script-intern eine Fehlerbehandlung zu machen?


    Für das Call memo.send(true) gibts leider keine Rückgabewerte, die über Erfolg oder Mißerfolg berichten.


    On Error wird nicht getriggert. Ansonsten find ich in der Doku und hier im Forum nichts in der Richtung.


    TIA
    Alex


    PS: Notes / Domino 6.0.irgendwas


    PPS: Das mit dem "komischen" Weitersenden ist notwendig da diese mails von anderen Rechnern hier im Netz an den Domino via smtp mta kommen. Da aber z.b. mit Linux keine Notes typischen Mail-Adressen möglich sind, wollt ich das dann so lösen. Der / Die Empfänger der Mails können lokal (Notes), extern (Notes) oder aber via Internet-Mail Adresse angegeben sein.

  • Ich versuche dir deinen Wunsch mal mit einer Analogie zu verdeutlichen:


    Ich schreibe einen Brief und werfe ihn in den Briefkasten. Noch bevor die Klappe zufällt wirft ihn der Briefkasten wieder raus und eine blecherne Stimme sagt: "Sehr geehrter Herr, Sie haben eine falsche Adresse auf dem Umschlag."


    Setze für Brief MEMO und für einwerfen SEND ein und du verstehst, daß das so nicht laufen kann.


    Auch von Agenten versendete Mails erhalten einen NonDeliveryReport an die im Agenten angegebene Absenderadresse. Dort findest du die Mails natürlich auch per Script (allerdings ein separates Script, vielleicht ein 2. Agent) und reagierst darauf.

  • Ich habe dir in meinem letzten Post versucht klarzumachen, dass es dieses Signal "er spuckts aus" gar nicht geben KANN! Genausowenig wie ein Briefkasten weiss was eine gültige Postleitzahl (Domain) ist...die kontrolliert erst der Postbeamte (Router).


    Ok ich versuchs nochmal anders zu erklären.


    Die Methode Send funktioniert unter bestimmten Bedingungen NICHT:


    - keine Felder SendTo, CopyTo oder BlindCopyTo vorhanden
    - in den o.g. Feldern keine gültige Adresse (in der Form name@domain)
    - in den o.g. Feldern zu viele Adressen (hunderte)


    Weiterhin verhält sich ein Agent natürlich etwas unterschiedlich auf einem Client (FrontEnd Ausführung per Klick) und einem Server (BackEnd Ausführung per Zeitplan/Ereignis). Hier wirken unterschiedliche Berechtigungen sowie ECL's


    Was ich auch nicht so recht verstehe: wozu speicherst und sendest du die gesamte Maske mit? Da die Mail deiner Aussage nach auch an Nicht-Notes-User geht ziemlich unverständlich und sinnlos (aber nicht die Fehlerursache).

  • hallo alex,


    wenn du per agent mails sendest, so haben auch diese mails einen absender. welcher das ist findest du am einfachsten raus, indem du eine mail per agent an dich selbst schickst. normalerweise ist der absender der agentsigner, also der name aus dem id file, mit dem du den agenten aktiviert hast. du kannst per LS den absender aber auch übersteuern, indem du in die felder Principal und From irgendeinen string reinsetzt. wenn du zustellmledungen abfangen willst, setzt du diesen wert idealerweise so, das die mails an dieselbe datenbank zurückgehen, in der dein agent läuft. nun kannst du die zurückkommenden delivery reports mit einem zweiten agenten der ebenfalls periodisch läuft verarbeiten.


    wie exakt dein report ist, kannst du übrigens auch über ein feld steuern. den namen weiß ich grad nicht, aber schau einfach in der maske mit den zustelloptionen wie das feld heißt.


    michael

  • mibo:
    Den Absender hab ich mit den imho möglichen Feldern verändert, so daß z.b. interne Mails auf den geänderten Absender gehen. Bei Internet-Mails interessieren die Werte den MTA scheinbar nicht so sonderlich. Lediglich der ReplyTo wird da berücksichtigt. Wenn man den Agenten manuell startet ists der Absender, der den Start ausgelöst hat. Beim autarken Lauf via Schedule wird der Server-Name benutzt. Auch wer da den Agenten signiert hat scheint unerheblich. Aber das mit Absendern ist ein eigenes Thema...
    Einziges Problem dabei ist, das kein Return-Dokument erstellt wird (bei falscher interner Notes-Adresse).


    carsten: keine Sorge, ich hab das schon verstanden warum es keinen Status geben kann. Daher gibst ja diese Fehler-Dokumente, die an den Absender zurückgehen.


    Ich poste mal die Ausgabe des Agenten nach einem manuellen Start:


    Das "Blexander" ist bewusst falsch geschrieben. Die Adresse wird aus der Mail komplett entfernt (sehe ich, da ich auch an weitere Adressen schicke und dort dieser Empfänger einfach /dev/null gewandert ist). Mit dem script Debugger hab ich mal geschaut ob das SendTo item verändert wird - Ergebnis: leider nein.


    Letzlich geht es drum, ob man die Information

    Zitat

    Mail konnte nicht an Blexander Weber gesendet werden, da kein entsprechender Name in den Adressbüchern gefunden wurde

    auch irgendwie via LotusScript erhalten kann, so das ich zur Laufzeit drauf reagieren kann.


    Alex

  • hallo alex,


    problem erkannt, gefahr gebannt...
    du versendest die mail an den notes namen, dadurch versucht LS gleich aufzuösen. diesen fehler müßte man denke ich abfangen können (mit einer normalen fehlerbehandlungsroutine) der errorcode ist glaube ich 4000 "no user found to send mail to".
    aber am geschicktesten wird es sein die adresse im format name@deinedomain.de zu senden. dadurch gibt der agent die mail einfach nur ab, und prüft den empfänger nicht, weil das dann der router macht. in diesem fall solltest du auch eine zustellungsfehlermail bekommen.


    p.s. das feld für den namen des absender nach extern heißt Principal !