Domino 9 und frühere Versionen > Entwicklung

Mail Forward Agent

(1/2) > >>

zhermann:
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

Till_21:
es gibt einen eventgesteuerten agenten der sich "after new mail arrived" nennt...

bei fragen, diese bitte stellen

gruss

zhermann:
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

zhermann:
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

ata:
... 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

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln