Autor Thema: Script für Mailweiterleitung  (Gelesen 2418 mal)

Offline Gani

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Script für Mailweiterleitung
« am: 18.07.02 - 13:48:57 »
Hi @ all,

ich habe folgendes Problem, welches mich schon fast zur Verzweifelung bringt:

Im Profil "OutofOffice" habe ich ein berechnetet Feld "Vertreter" hinterlegt. Die Aktivierung des Außer Haus Agenten habe ich so gelegt, dass gleichzeitig zum OutofOffice Agenten ein Agent namens"Mailweiterleitung" aktiviert wird. Beide Agenten arbeiten bei eingehenden Mails.

Der Agent "Mailweiterleitung" sieht wie folgt aus:

Sub Initialize
   
    ' Definition von Variablen für verschiedene "Notes: Classes"
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim collection As NotesDocumentCollection
    Dim memo As NotesDocument
    Dim reply As NotesDocument
   
   
    'Object Variablen setzen
    Set s = New NotesSession
    Set db = s.CurrentDatabase
    Set documents = db.UnprocessedDocuments
    Set view = db.GetView("($Profiles)")
    Set profile = db.GetProfileDocument("OutOfOfficeProfile")
    Set Vertreter = profile.GetFirstItem("Vertreter")
   
    ' Definition von j als Laufvarable Zahl
    Dim i As Integer
   
   
' In die Variable collection kommen alle vom Agenten bisher nicht bearbeiteten Dokumente
    Set collection = db.UnprocessedDocuments
   
   
    ' Führe folgendes so oft aus, wie die Anzahl der bisher unbearbeiteten Dokumente
    For i = 1 To collection.Count
         
         ' memo wird mit dem Inhalt des ersten Dokumentes gefüllt
         Set memo = collection.GetNthDocument( i )
         
       ' Wenn das Memo nicht von einem Agenten versandt wurde, dann führe die nächsten Zeile aus:
         If Not( memo.SentByAgent ) Then
              ' Neues Dokument erstellen
              Set reply =  New NotesDocument ( db )
              ' In das Feld Subject Empfanngsbestätigung und die Kurzbeschreibung des ursprünglichen Mails einfügen
              Call reply.ReplaceItemValue( "Subject", "Weiterleitung für Vertreter: " & memo.Subject( 0 ) )
              ' In das Body -Feld kommt der Inhalt der Variable text
              Call reply.ReplaceItemValue( "Body", memo.body )
              ' In das Feld SendTo kommt der Absender
              Call reply.ReplaceItemValue( "SendTo", "" & memo.Vertreter( 0 ) )
              'Nun wird das Mail gesendet
              Call reply.Send( False )
             
         End If 'Ende Schleife
         
         
         ' Aktualisiere die unbeabeiteten Dokumente
         Call session.UpdateProcessedDoc( memo )
         
    ' Nehme das nächste Dokument
    Next
   
' Ende des Programmes
End Sub

Ergebnis: "Notes Error: Keine Namen gefunden, an die das Mail gesendet werden kann." :'(

Ich glaube, dass es an dieser Zeile liegt:

Call reply.ReplaceItemValue( "SendTo", "" & memo.Vertreter( 0 ) )

Was mache ich falsch???

Vielen Dank schon mal im voraus !!!

cu
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re: Script für Mailweiterleitung
« Antwort #1 am: 18.07.02 - 20:38:22 »
Hi,

hast Du schon das probiert?

reply.SendTo = memo.Vertreter( 0 )
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

Offline Gani

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re: Script für Mailweiterleitung
« Antwort #2 am: 19.07.02 - 08:39:36 »
hi doliman,

dein tip ist seehr gut,
ich habe folgendes gemacht:

reply.SendTo = Vertreter

Call reply.ReplaceItemValue( "SendTo", reply.SendTo)

funktioniert aber nur fast, denn nun habe ich anscheinend das problem, dass er probleme mit dem Feld Vertreter hat, weil er keine namen findet.
setzte ich in der zeile:

reply.SendTo = "adresse"

kommt die memo an!!

weißt du noch einen tip für mich
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re: Script für Mailweiterleitung
« Antwort #3 am: 19.07.02 - 09:10:50 »
Hi,

lese die Mehrfachwerde über eine Schleife aus dem Feld mit den Adressempfängern

Dim recipients( 1 To 3 ) As String

'Dein Empfänger Mehrfachfeld
Forall v In vertreter.Values
 i=i+1
 recipients( i) = v
End Forall

Call doc.Send( True, recipients )

So ähnlich. Das Array muß noch zur Laufzeit bestimmt werden.
Schau mal in der Designer Hilfe nach da hats die Beispiele drin.

« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz