Aktuelle Seite:
/vba/vbanotesmail.htm
Letzte Änderung: 24.06.2006

Getestet unter Word97Getestet unter Word2000   Lotus Notes R5
Makro/Datei speichern
Print

Neben der Möglichkeit, E-Mails aus Word/VBA über ein API oder MAPI zu verschicken, lässt sich auch die E-Mail-Funktion von Lotus Notes (R5) zum Versenden verwenden. Allerdings ist hier der Aufwand grö๎er, da Lotus Notes datenbankbasierend arbeitet.

Um auf Lotus Notes zugreifen zu können, ist ein Zugriff auf das Notes-Objekt über die Lotus Notes Automation Classes notwendig, d.h. Lotus Notes muss installiert und registriert sein, damit die Datei notes32.dll angesprochen werden kann.
Über das Notes-Objekt lassen sich dann alle E-Mail-Funktionen, inkl. Mail-Anhang, ausführen.

Die Konfiguration der E-Mail-Parameter erfolgt innerhalb des Makros  NotesMail, während der Mail-Versand in der Funktion  NotesMailSend erfolgt.

Sub NotesMail()  
Dim strEmpfaenger, strBetreff, strText, strcc, strbcc As String 
Dim strFile As String 
strEmpfaenger = "Empfaenger@domain.tld"
strBetreff = "BetreffText"
strText = "Test"
strText = "Bitte beachten Sie ..."
strFile = "D:\logo.sys" 'ActiveDocument.FullName
NotesMailSend strEmpfaenger, strBetreff, strText, strcc, _
  strbcc, strFile
End Sub 

Function NotesMailSend(strEmpfaenger As Variant, strBetreff As Variant, _
strText As Variant, strcc As Variant, strbcc As Variant, strFilename As _
String)
' 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
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 versendet!"
MsgBox msg, vbInformation, "Notesmail versenden..."
' Objektvariablen zurücksetzen
Call objNotes.Close
' Leider funktioniert der Quit-Befehl aus irgend einem Grund nicht.
objNotes.Quit
Set objNotes = Nothing 
ExitF:
End Function 

 www.chf-online.de/vba/vbanotesmail.htm © 2001-11 Christian Freßdorf (Zaphod-Systems)