PDA

Vollständige Version anzeigen : Script zum versenden von Mails


Mic_Bac
18.01.2005, 10:24
Hallo Board,

ich habe hier ein Script gefunden um E-Mails aus Excel per Klick auf einen Command-Button mit Lotus Notes R5 zuverschicken.

Ich habe nun das Problem, dass ich einen Empfänger habe und zwei Empfänger in Copy.

Das Script sieht so aus:

Private Sub CommandButton1_Click()

Dim strEmpfaenger, strBetreff, strcc, strText, strText1 As String
Dim strFile As String
strEmpfaenger = "Mail des Empfängers"
strcc1 = "Mail Empfänger Copy 1"
strcc2 = "Mails Empfänger Copy 2"
strBetreff = "Abschluß " + ActiveWorkbook.Name
strText = "Der Bericht zum Datenblatt " + ActiveWorkbook.Name + " ist fertig"
' Dimensionierung der Objektvariablen
Dim objNotes As Object, objNotesDB As Object, objNotesMailDoc As Object
Dim SendItem, NCopyItem, BlindCopyToItem, i As Integer, rtitem
Dim msg As String
'
' Zuweisung der Objektvariablen
' On Error GoTo ExitF
Set objNotes = GetObject("", "Notes.Notessession")
Set objNotesDB = objNotes.GETDATABASE("", "")
' Öffnen der Standard-Maildatenbank / Erstellen neues Maildokument
Call objNotesDB.OPENMAIL
Set objNotesMailDoc = objNotesDB.CREATEDOCUMENT
objNotesMailDoc.Form = "Memo"
Call objNotesMailDoc.Save(True, False)
Set SendItem = objNotesMailDoc.APPENDITEMVALUE("SendTo", "")
Set NCopyItem = objNotesMailDoc.APPENDITEMVALUE("CopyTo", "")
Set BlindCopyToItem = objNotesMailDoc.APPENDITEMVALUE("BlindCopyTo", "")
objNotesMailDoc.sendto = strEmpfaenger
objNotesMailDoc.Subject = strBetreff
objNotesMailDoc.copyto = strcc1 + "," + strcc2
Set rtitem = objNotesMailDoc.CREATERICHTEXTITEM("Body")
objNotesMailDoc.Body = strText
rtitem.ADDNEWLINE (1)
' Call rtitem.EMBEDOBJECT(1454, "", strFilename)
' Mail zustellen
Call objNotesMailDoc.Save(True, False)
Call objNotesMailDoc.send(False)
objNotesMailDoc.RemoveItem ("DeliveredDate")
Call objNotesMailDoc.Save(True, False)
' Nachricht an Benutzer
msg = "Die E-Mail wurde erfolgreich an " + strEmpfaenger + " und " + strcc + " versendet!"
MsgBox msg, vbInformation, "Notesmail versenden..."
' Objektvariablen zurücksetzen
Call objNotes.Close
' Leider funktioniert der Quit-Befehl aus irgend einem Grund nicht.
ExitF:

End Sub

In Fett habe ich dargestellt wie ich versucht habe es zu lösen.
Funktioniert soweit auch, nur leider bekommt nur der Haupt-Empfänger und der Erste Empfänger in Copy (strcc1) die Mail.
Der Empfänger in Copy 2 (strcc2) bekommt die Mail nicht obwohl in Lotus unter Gesendete Objekte die Mails als erfolgreich versendet steht.

Ich hoffe ich konnte mein Problem einigermaßen verständlich darstellen.

Hat jemand vielleicht eine Idee was ich falsch mache???

Mfg

Michael Bachert

Woody
18.01.2005, 11:55
Hallo Michael,

nur eine schwache Vermutung, aber probiere doch mal bitte:
objNotesMailDoc.copyto = strcc1 + ", " + strcc2

Mic_Bac
18.01.2005, 12:15
Hallo Woddy,

Danke für Deine Antwort.

Leider klappt das auch nicht richtig.

Der erste Empfänger in Copy bekommt die Mail, der zweite nicht. :(


Hast Du oder jemand anderes noch eine andere Idee??


mfg

Michael

Woody
18.01.2005, 13:00
Hallo Michael,
ich habe ein solches Makro auch in Verwendung und habe ein wenig getestet eben. Warum auch immer, es funktioniert bei nur, wenn maximal je ein Adressat (in Empfänger bzw. cc. oder bcc.) angegeben wird. Bei zwei Empfängern in einem der Absenderbereiche wird bei mir gar nichts gesendet.

Als Alternativlösung würde ich Dir empfehlen die Mail mehrfach zu versenden mit einer übergeordneten Programmschleife abhängig von der Anzahl der Empfänger.

Mic_Bac
18.01.2005, 13:39
Hallo Woddy,

danke für Deine Hilfe!

Ich habe das per Schleife gelöst, so wie Du das vorgeschlagen hast.

Mfg

Michael

PS.: Ich werde das ganze noch mal in einem Lotus Forum erörtern, da es vielleicht ein Problem unter Lotus ist wegen dem Komma zwischen den Adressen.

Woody
18.01.2005, 14:11
Bitte informiere mich, wenn Du neue Erkenntnisse hast.

Danke!

barosgerd
08.05.2012, 14:02
Hi Muc_Bac

ist ganz einfach - hab auch gegooglt

am besten du machst das so...

'Alle empfänger in eine Variable schreiben
strEmpfaenger = "Name1@blub.de, Name2@blubb de"

und unten machst du folgendes:

objNotesMailDoc.copyto = Split(strEmpfaenger, ",") 'Er splittet jetzt den String nach jedem Komma.
'Hab gelesen das es sich bei Notes um einen Array handelt den du auflisten musst

Grüße Norman

mumpel
08.05.2012, 23:56
Hallo!

Ob das den TO nach über 7 Jahren noch interessiert? Immer diese Leichenfledderei. ;)

Gruß, René