Autor Thema: Mail Forward Agent  (Gelesen 2263 mal)

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Mail Forward Agent
« am: 17.02.03 - 10:46:17 »
Hallo Leute,

hatt jemand von Euch schonmal einen Mail Forward Agenten geschrieben.

Habe folgendes Problem:

Wir haben eine USergroup, die auch von Externen genutzt wird.
Der Agent soll nachdem eine Mail eingegangen ist, prüfen ob der Absender in der Liste ist und die Mail dann an die Gruppe versenden.
Habe es schon über Rules versucht, da kann ich aber die Prüfung nicht einbauen.

Wie ich mails verschicke über einen Agentenist mir schon klar, nur wie bekomme ich raus, welches eingehende Mail/Dok. hat jetzt den Agenten ausgelöst?

Hat da eine eine Idee??

Gruß Zsolt Hermann

Offline Till_21

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • I love Germany
Re:Mail Forward Agent
« Antwort #1 am: 17.02.03 - 11:06:04 »
es gibt einen eventgesteuerten agenten der sich "after new mail arrived" nennt...

bei fragen, diese bitte stellen

gruss

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:Mail Forward Agent
« Antwort #2 am: 17.02.03 - 14:55:31 »
Hi,

dieses Ereignis ist mir wohl bekannt.

Meine Frage ging aber dahin, wie ich meinem Agenten übergeben kann, welches das Aufrufende Dokument ist.

Habe es aber glaube gefunden: Notesdocument = NotesSession.DocumentContext

Damit komme ich an das eingegangene Mail und kan die Werte darin weiterverarbeiten.

Gruß Zsolt Hermann

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:Mail Forward Agent
« Antwort #3 am: 17.02.03 - 15:25:55 »
Meine Ansätze funktionieren nicht.

Habe eine Agenten kreiert mit dem Namen "Mailusergroup" mit der Option "After new mail has ..."

Der Code Sieht folgendermaßen aus:

Sub Initialize
   
   Dim sess As New NotesSession
   Dim Db As NotesDatabase
   
   Dim Mail_In_Doc As NotesDocument
   Dim Mail_out_Doc As NotesDocument
   Dim ConfigDoc As NotesDocument
   Dim Item As NotesItem
   
   Dim MailFrom As String
   Dim MailList As Variant
   
   Set db = sess.CurrentDatabase
   
   Set ConfigDoc = db.GetProfiledocument("(UserGroupList)" )
   Set Mail_In_doc = sess.DocumentContext
   
   MailFrom = Ucase( Mail_in_Doc.GetItemValue("SMTPOriginator") (0))
   
   If Not(ConfigDoc Is Nothing) Then
      
      MailList = Ucase(ConfigDoc.GetItemValue("Userlist") (0))
      If Instr(1,  MailList, MailFrom) Then
         
         Set Mail_out_doc = db.CreateDocument
         With Mail_Out_Doc
            
            .Form = "Memo"
            .BlindCopyTo = ConfigDoc.GetItemValue("Userlist") (0)
            .Subject = Mail_In_Doc.GetItemValue("Subject") (0)
            Set Item = Mail_In_Doc.GetFirstItem("Body")
            Call .CopyItem(Item, "Body")
            Call .Save(True, True)
            Call .Send(True)
            
         End With      
         
      End If
      
   End If
   
End Sub

Der Agent scheint zu anzulaufen, aber im log erscheint immer die Meldung "AMgr: Agent ('MailUsergroup' in 'Administration\UserGrou.nsf') error message: Object variable not set"

Wenn ich den Agenten per Hand starte funktiotioniert er soweit, das keine Fehlermeldung hoch kommt. Das Mail wird gespeichert aber nicht versendet.

Woran liegt es. Es darf im Feld Sendto, oder CC nicht enthalten sein.

Gruß Zsolt hermann

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Mail Forward Agent
« Antwort #4 am: 17.02.03 - 17:39:25 »
... ich vermute am documentContext liegt es. Wenn du manuell startest ist das Dokument aktuell geöffnet - und damit verfügbar...

... wird der Agent zeitgesteuert, dann gibt es kein documentContext´in der Session...

ata
Grüßle Toni :)

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:Mail Forward Agent
« Antwort #5 am: 18.02.03 - 07:51:26 »
Hi,

wie kann ich aber dann den Agenten dazu bringen das zu machen was er soll.

Mein Problem ist halt, das ich erst prüfen muß, ob der Absender in der Lsite ist, wenn nicht, darf das Mail nicht weitergeschickt werden. Wenn ja soll es verteilt werden.

DocumentContext ist aber eine Backend Klasse und sollte im hintergrund laufen???

Gibt es ein Tool was meine Anforderungen erfüllt??


Gruß Zsolt Hermann

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Mail Forward Agent
« Antwort #6 am: 18.02.03 - 09:12:03 »
Hoy...

... hier ein Auszug aus der Hilfe von Notes:

For an agent activated in a view through the Notes client UI, the in-memory document is the document highlighted in the view.

For an agent run from a browser with the OpenAgent URL command, the in-memory document is a new document containing an item for each CGI (Common Gateway Interface) variable supported by Domino. Each item has the name and current value of a supported CGI variable. (No design work on your part is needed; the CGI variables are available automatically.)

For an agent run from a browser with @Command[ToolsRunMacro], the in-memory document is the current document. In the case of WebQueryOpen, this is the document before Domino converts it to HTML and sends it to the browser; in the case of WebQuerySave, this is the document before Domino saves it. If the form on which the document is based contains a field named the same as a Domino-supported CGI variable, the in-memory document also contains the value of that variable. (You must explicitly design the CGI variables into the form, for example, as hidden fields.)

... soviel zum DocumentContext...

... ich würde es mit einem zeitgesteuerten Agent probieren - zum Bsp. stündlich überprüfen, was in der letzten Stunde eingegangen ist, die Docs in eine Collection ziehen und dann abarbeiten...

ata
Grüßle Toni :)

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:Mail Forward Agent
« Antwort #7 am: 27.02.03 - 14:50:08 »
Hi,

jetzt versuche ich es mit der Zeitsteuerung, aber diese funktioniert nicht.

Hier mal der Code den ich im Agent verwende:

Sub Initialize
   
   Dim sess As New NotesSession
   Dim Db As NotesDatabase
   
   Dim Mail_In_Doc As NotesDocument
   Dim Mail_out_Doc As NotesDocument
   Dim ConfigDoc As NotesDocument
   Dim Item As NotesItem
   
   Dim MailFrom As String
   Dim MailList As Variant
   
   Set db = sess.CurrentDatabase
   
   Set ConfigDoc = db.GetProfiledocument("(UserGroupList)" )
   
   Set Mail_In_doc = sess.DocumentContext
   
   MailFrom = Ucase( Mail_in_Doc.GetItemValue("SMTPOriginator") (0))
   
   If Not(ConfigDoc Is Nothing) Then
      
      MailList = Ucase(ConfigDoc.GetItemValue("Userlist") (0))
      If Instr(1,  MailList, MailFrom) Then
         
         Set Mail_out_Doc = New NotesDocument(DB)
         Set Item = Mail_In_Doc.GetFirstItem("Body")
         
         With Mail_Out_Doc
            .Form = "Memo"
            .Subject = Mail_In_Doc.GetItemValue("Subject") (0)
            
            Call Item.CopyItemToDocument(Mail_out_doc, "")
            .Principal = "Usergroup@lstelcom.com")
            Call .send( False,  "&Usergroup")
         End With
         
      End If
      
   End If
   
End Sub

Wenn ich den Agenten per Hand ( Button) aufrufe, funktioniert es mit der Einschränkung, daß kein Absender angegeben ist.

Hat jemand von Euch den Durchblick ?

Danke Zsolt Hermann

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz