Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Strossi am 13.09.04 - 15:28:13
-
Ich habe ein Problem! Ich möchte aus einer Listbox von VB6 alle aufgelisteten emailadressen in das Feld BlindCopyTo von Lotus Notes eintragen. Aber das funktioniert nicht. Ich kann nur max.15 Adressen speichern. Bei mehr als 15 werden alle bis auf eine gelöscht. Kann mir jemadb einen Tip geben. Wäre sehr dankbar daführ. Probiere schon einige Tage daran herum.
-
Gibst Du uns mal ben Code, den Du verwendest? Vielleicht können wir Dir dann eine Alternative aufzeigen.
-
Hier der Code:
Listbox von VB:
For icounter = Me.lstMail.ListCount - 1 To 0 Step -1
KundenMail = Me.lstMail.List(icounter)
EMailadressen = EMailadressen & KundenMail & ","
Aufruf Notes:
SendNotesMail cboThema.Text, EMailadressen, (BodyTxt)
Email versenden mit Notes:
'Die Session starten
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
'Datenbank öffnen
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.ISOPEN = False Then Maildb.OPENMAIL
'Ein neues Maildokument erstellen
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "MemoKDE"
MailDoc.BlindCopyTo = Recipient
MailDoc.Subject = Subject
MailDoc.Body = BodyText
MailDoc.SAVEMESSAGEONSEND = SaveIt
'MailDoc.ReturnReceipt = "1" 'e-Mail bestätigung vom Empfänger
'Eingebettete Objekte und Anhänge hinzufügen
Set NewObj = CreateObject("Scripting.FileSystemObject")
Set myFolder = NewObj.GetFolder("C:\" + k_Country)
Set AllFiles = myFolder.Files
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
For Each s_Files In AllFiles
i = InStr(s_Files, ".")
Datei = LCase(Mid(s_Files, i))
If Datei = ".pdf" Then
Attachment = s_Files
If Attachment <> "" Then
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
End If
End If
Next
'Senden
MailDoc.PostedDate = Now()
MailDoc.SEND 0, Recipient
-
Da wird vermutlich der String zu lang :(
Versuche doch, was passiert, wenn Du statt eines einzigen Strings direkt die Lise aus der Listbox übergibst. Falls das nicht geht, würde ich im NotesDocument das Feld BindCopyTo als NotesItem erstellen und dann per AppendToTextList die einzelnen Empfänger so im Dokument eintragen.
-
OK probier ich mal aus.
Danke für die Info
Gruß Strossi :-)
-
Hallo leute habe es geschaft. Mehrere E-Mailadressen mit einem VB Script in das Feld BlindCopyTo zu schreiben. Das mit NotesItem oder so war gut hat aber nicht geklappt. Hier die Lösung:
Ein dynamisches Array Dimensionieren.
Dim Emailadressen() as string
Die Anzahl der Adressen im Listenfeld zuordnen
AnZahl=Listbox1.ListCount
max.Größe des Array bestimmen
ReDim Emailadressen(Anzahl)
mit einer For schleife die Emailadressen aus der Listbox in das Array schreiben.
For i=listbox1.ListCount-1 to 0 step-1
Lesen=listbox1.List(i)
Emailadressen(i)=Lesen
next i
Nun das Array übergeben
z.B. MailDoc.BlindCopyTo=Emailadressen
Jetzt werden alle Emailadressen untereinander Aufgelistet.
Habs mit 147 Stück probiert funktioniert tadellos.
Danke nochmals für eure Tipps
Gruß Strossi
;D
-
Das war die andere Variante, die ich gemeint habe, allerdings sollte das ohne Umkopieren funktionieren, etwa so:
MailDoc.BlindCopyTo=listbox1.List
-
Da Jens der String-Variante noch nicht explizit widersprochen hat:
Und mehrere Addressaten müssen immer in einem Array stehen - sie in einem String zu verketten, wird von Notes im Backend nicht akzeptiert (bzw. nicht aufgelöst).
HTH,
Bernhard
-
Das war die andere Variante, die ich gemeint habe, allerdings sollte das ohne Umkopieren funktionieren, etwa so:
MailDoc.BlindCopyTo=listbox1.List
-
Und je nach Implementation kommt die Listbox als Array oder als List daher, normalerweise - wie hier zu sehen - als Array
-
Die Variante mit der Listbox anhängen wurde von notes nicht akzeptiert. Zumindest nicht bei mir.
-
Und wenn Du die Variable MailAdressen als Variant deklarierst (gibts das in VB6 ?) und so zuweisest:
MailAdressen = listbox1.List
und das dann an Notes übergibst?
-
::) Also ich habe deinen Vorschlag gerade mal durchgeführt.
Aber da erhalte ich den Fehler: Variable nicht Optional.
Doch die Variante mit dem Array functioniert und ist sehr schnell.
Haupt sache es geht.
Gruß Strossi
-
Danke fürs Testen. erweitert den Horizont :) Scheint mir aber trotzdem etwas seltsam zu sein, dass das Umkopieren erforderlich ist, aber wie Du sahgst, es funktioniert.