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
|