Domino 9 und frühere Versionen > ND6: Entwicklung

mehrere Mailempfänger auslesen

<< < (2/2)

Thomas Schulte:
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

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

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln