Autor Thema: mehrere Mailempfänger auslesen  (Gelesen 2849 mal)

Offline mxm

  • Frischling
  • *
  • Beiträge: 27
mehrere Mailempfänger auslesen
« am: 22.08.05 - 12:13:14 »
Hallo,

habe folgendes geschrieben.

Set UiDoc = UiWs.CurrentDocument
Set MemoDoc = UiDoc.Document
sendto = UiDoc.FieldGetText("EnterSendTo")

damit kann ich ohne Probleme die Mail an einen Empfänger senden, doch sobald ich einen zweiten Empfänger angebe, dann geht es nicht mehr, da dem ersten Empfänger und dem zweite Empfänger ein String gemacht wird.

Wie kann ich es nun machen das die Mail auch an die anderen Empfänger gesandt wird.
Also, sobald ein Komma auftaucht, der nächste Empfänger kommt?
Ich denke mal mit einem Array, aber wie?

Habe schon gegooglet und hier im Forum auch nichts gefunden, was ich verstehen würde.

Danke schonmal im Voraus.

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: mehrere Mailempfänger auslesen
« Antwort #1 am: 22.08.05 - 12:21:44 »
item = uidoc.document.getfirstitem("EnterSendTo")
Call item.CopyItemToDocument ( NewMemo, "EnterSendTo")
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline mxm

  • Frischling
  • *
  • Beiträge: 27
Re: mehrere Mailempfänger auslesen
« Antwort #2 am: 22.08.05 - 12:42:14 »
Set UiDoc = UiWs.CurrentDocument
Set MemoDoc = UiDoc.Document
sendto = UiDoc.FieldGetText("EnterSendTo")

Den Code kann ich so lassen oder muss ich da was ändern?

Weil ich bekomme jetzt die Fehlermeldung:--> SET required on class instance assignment

Gruß mxm

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: mehrere Mailempfänger auslesen
« Antwort #3 am: 22.08.05 - 13:05:39 »
Also wenn du dich auf den Code beziehst den du jetzt gerade geposted hast, nein den kannst du nicht so lassen der ist auch falsch.
An dem hast du nämlich nix geändert, im Vergleich zu deiner vorherigen Version.

Klar musst du dem item=uidoc.document.get.... noch ein Set davorsetzen. Und tu dir einen Gefallen und schmeiß bei solchen Fehlern den Debugger an. Du wirst sehen das erweitert deinen Verständnishorizont ungemein.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline mxm

  • Frischling
  • *
  • Beiträge: 27
Re: mehrere Mailempfänger auslesen
« Antwort #4 am: 22.08.05 - 13:35:22 »
Also, irgend wie klappt das nicht bei mir. Jetzt sagt der Debbuger "Typ is missmatch".

Ich erkläre mal kurz.

Wenn ich ein neues Memo öffene soll er die Daten die ich da rein schreibe in eine "Neues Memo" schreiben, welches im hintergrund geöffnett wird, und dieses "Neue Memo", wird mit den Daten gefüllt und Versand.

Dazu lese ich den Inhalt im Feld ENTERSENDTO aus und zwar so.

Set UiDoc = UiWs.CurrentDocument
Set MemoDoc = UiDoc.Document
sendto = UiDoc.FieldGetText("EnterSendTo")

Das geht auch und dieses Feld wird dann an mein erstelltes Dokument weitergeben, damit mein erstelltes Dokument weiß wo er die Mail hinsenden soll.

Doch mein Problem ist wie kann ich jetzt meinem erstelltem Dokument sagen, "DU", da kommen jetzt mehrere Empfänger und nicht nur einer.

So und hier ist mal mein Erstelltes Dokument -->

Function MessageSenden( Byval sendto As String, subject As String, message As String, sAdrReply As String, sAdrSender As String, sAdrAlias)
   
   Dim nSession As New NotesSession
   Dim nDB As NotesDatabase   
   Dim mailbox As New NotesDatabase("","")
   Dim MailDoc As NotesDocument
   Dim rtitem As NotesRichTextItem   
   
   Set nDB = nSession.CurrentDatabase
   
   Call mailbox.Open( nDB.server, "mail.box" )   
   Set MailDoc = mailbox.CreateDocument
   
%REM So und hier dachte ich müsste eine Schleife um Mehrere Empfänger auslesen zukönnen, doch irgendwie ist die wohl falsch   Forall empfaenger In MailDoc.SendTo
      Msgbox(MailDoc.SendTo)
      
      Call MailDoc.send(False,empfaenger)
      Msgbox(empfaenger)
   End Forall
%END REM
   
   MailDoc.Form = "Memo"
   MailDoc.SendTo = sendto
   
   MailDoc.Recipients = sendto   
   MailDoc.Subject = subject
   
   MailDoc.tmpDisplayReplyInfo =  " Bitte Antworten an "  + sAdrReply + " ."
   MailDoc.DisplayReply = " Bitte Antworten an "  + sAdrReply + " ."
   MailDoc.From = sAdrReply
   MailDoc.Principal = sAdrReply
   
   MailDoc.tmpDisplayFrom_NoLogo = sAdrSender
   MailDoc.DisplaySent = sAdrSender   
   MailDoc.tmpDisplaySentBy = sAdrSender   
   MailDoc.SendFrom = sAdrAlias
   
   MailDoc.DisplayFrom = sAdrAlias + " < " + sAdrSender + " >"
   MailDoc.DisplayFrom_Preview = sAdrAlias + " < " + sAdrSender + " >"
   
   Set rtitem = MailDoc.CreateRichTextItem( "Body" )
   Call rtitem.AppendText( message)
   
   MailDoc.PostedDate = Now()
   MailDoc.ComposedDate = Now()
   MailDoc.DeliveredDate = Now()
   MailDoc.EncryptOnSend = True
   
'   Call MailDoc.Send(False, sendto)
   Call MailDoc.Save( True, False )
   
End Function


   

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: mehrere Mailempfänger auslesen
« Antwort #5 am: 22.08.05 - 14:02:21 »
Mal so als allererste Anmerkung:
Wie lange beschäftigst du dich schon mit Lotus Script und woher hast du den Code geklaut?
Als zweite Anmerkung:
Wenn du hier fragst dann geb deinen Kenntnisstand mit an. Bei Fragen zu Script erwarte ich das sich der Fragende zumindest mit den Basisklassen auskennt.
Als dritte Anmerkung:
Schildere dein Problem vollständig und nicht bröckchenweise so wie du es gemacht hast. Das spart Zeit und Nerven. Auf beiden Seiten.

In der aufrufenden Prozedur:
dim sendto as notesitem
set sendto = UiDoc.document.getfirstitem("EnterSendTo")

Und deine Function so anpassen:
Function MessageSenden( Byval sendto As notesItem, subject As String, message As String, sAdrReply As String, sAdrSender As String, sAdrAlias)
   
   Dim nSession As New NotesSession
   Dim nDB As NotesDatabase   
   Dim mailbox As New NotesDatabase("","")
   Dim MailDoc As NotesDocument
   Dim rtitem As NotesRichTextItem   
        Dim item as notesitem
   
   Set nDB = nSession.CurrentDatabase
   
   Call mailbox.Open( nDB.server, "mail.box" )   
   Set MailDoc = mailbox.CreateDocument
   
   MailDoc.Form = "Memo"
        Set item =  Maildoc.ReplaceItemValue("SendTo", sendto)
   
        Set item =  Maildoc.ReplaceItemValue("Recipients", sendto)
   MailDoc.Subject = subject
   
   MailDoc.tmpDisplayReplyInfo =  " Bitte Antworten an "  + sAdrReply + " ."
   MailDoc.DisplayReply = " Bitte Antworten an "  + sAdrReply + " ."
   MailDoc.From = sAdrReply
   MailDoc.Principal = sAdrReply
   
   MailDoc.tmpDisplayFrom_NoLogo = sAdrSender
   MailDoc.DisplaySent = sAdrSender   
   MailDoc.tmpDisplaySentBy = sAdrSender   
   MailDoc.SendFrom = sAdrAlias
   
   MailDoc.DisplayFrom = sAdrAlias + " < " + sAdrSender + " >"
   MailDoc.DisplayFrom_Preview = sAdrAlias + " < " + sAdrSender + " >"
   
   Set rtitem = MailDoc.CreateRichTextItem( "Body" )
   Call rtitem.AppendText( message)
   
   MailDoc.PostedDate = Now()
   MailDoc.ComposedDate = Now()
   MailDoc.DeliveredDate = Now()
   MailDoc.EncryptOnSend = True
   
'   Call MailDoc.Send(False, sendto)
   Call MailDoc.Save( True, False )
   
End Function

Fazit: du hast so ziemlich alles Falsch gemacht was man nur falsch machen kann. Den Unterschied zwischen einem String und einem NotesItem hast du auch nicht begriffen und Zielführend ist dein Aufruf auch nicht. Wie soll denn ein übergebener String in einem neu erstellten Notesdocument Mehrfachwerte annehmen können?

Zur Erklärung.
Wenn du das hier so deklarierst:
MessageSenden( Byval sendto As String, ...

und vorher so füllst:
sendto = UiDoc.FieldGetText("EnterSendTo")

dann kannst du hier doch nicht erwarten das hier Abrakadabra plötzlich ein Array rauskommt:
%REM So und hier dachte ich müsste eine Schleife um Mehrere Empfänger auslesen zukönnen, doch irgendwie ist die wohl falsch   Forall empfaenger In MailDoc.SendTo
      Msgbox(MailDoc.SendTo)
     
      Call MailDoc.send(False,empfaenger)
      Msgbox(empfaenger)
   End Forall
%END REM
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline mxm

  • Frischling
  • *
  • Beiträge: 27
Re: mehrere Mailempfänger auslesen
« Antwort #6 am: 22.08.05 - 14:17:44 »
Danke dir für deine Antwort,

ich hatte vor ca. eineinhalb jahren für ein knappes halbes jahr mit Lotus Script zutun und jetzt seit ca. 2 Wochen wieder beruflich.
Der Code ist nicht geklaut, den habe ich selbst geschrieben, hat auch eine weile gedauert.

Gibt ja auch noch Bücher, doch alles steht dort halt auch net drin.

Naja, danke dir trotzdem für die Antworten.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz