Hallo zusammen,
ich möchte gerne Daten direkt aus Excel versenden. Die u.g. Routine habe ich aus einer Excel-Newsgroup bekommen. Leider konnte mir niemand sagen, wie ich den u.g. Code modifizieren muss, um statt einer fertigen Mail (die auch abgeschickt wird) einen Mail-Entwurf generieren kann. Ich möchte die Datei, die ich anhänge, vorher nochmal auf Fehler prüfen, bevor ich die Daten rausschicke.
Vielen Dank im Voraus
Matthias
Public Sub SendNotesMail2(MailTo As String, MailText As String, MailAnhang As String, MailAbsender As String, MailBetreff As String, MailSenden As Boolean, Receipt As Boolean)
'
' Versenden einer E-Mail via Lotus Notes.
'
' IN: MailTo E-Mail Adresse des Empfängers
' MailText Text der Nachricht
' MailAnhang Dateianhang (Dateiname mit Pfad)
' MailAbsender Name des Absenders (wird an den Text angeängt)
' MailBetreff Betreffzeile der E-Mail
' MailSenden True wenn Nachricht versendet werden soll,
' False wenn Nachricht als Entwurf gespeichert werden soll
'
Dim rtitem As Object
Dim EmbeddedObject As Object
Dim SessionNotes As Object, NotesDB As Object, NotesDoc As Object
Dim EmpfListe() As String
Dim EmpfCnt As Integer
Dim Pos1 As Long
Dim i As Integer
'
' wenn die Betreffzeile leer ist, dann wird eine erzeugt
'
If Trim$(MailBetreff) = "" Then
MailBetreff = "Mail vom " & Date & " " & Time
End If
'
' Eigene Fehlerbehandlung
'
On Error GoTo Err_Mail_Click
'
' An die laufende Lotus Notes Session anhängen
'
Set SessionNotes = CreateObject("Notes.NOTESSESSION")
'
' Notes Datenbank-Objekt erstellen und initialisieren
'
Set NotesDB = SessionNotes.GetDatabase("", "")
NotesDB.OPENMAIL
If NotesDB.IsOpen = False Then
MsgBox "Bitte melden Sie sich zunächst vollständig in Notes an!", vbInformation + vbOKOnly
Exit Sub
End If
'
' Empfängerliste erstellen
'
EmpfCnt = 0
Pos1 = InStr(MailTo, ";")
While Pos1 > 0
ReDim Preserve EmpfListe(EmpfCnt)
EmpfListe(EmpfCnt) = Left(MailTo, Pos1 - 1)
MailTo = Right(MailTo, Len(MailTo) - Pos1)
Pos1 = InStr(MailTo, ";")
EmpfCnt = EmpfCnt + 1
Wend
ReDim Preserve EmpfListe(EmpfCnt)
EmpfListe(EmpfCnt) = MailTo
'
' Neues Notes-Dokument anlegen (Mail)
'
For i = 0 To EmpfCnt
Set NotesDoc = NotesDB.CreateDocument
With NotesDoc
.Form = "Memo"
.Subject = MailBetreff
.sendto = EmpfListe(i)
'.copyto = ' Kopie an
'.blindcopyto= Blindkopie an
.body = MailText & vbCrLf & MailAbsender
'.DefaultMailSaveOption = 0
'.MailSaveOption = 0
.DeliveryReport = "B"
.Importance = "2"
'.logo = "Scania"
.SAVEMESSAGEONSEND = True ' bei True wird ein Exemplar in Notes in Gesendet gestellt
If Receipt Then
.ReturnReceipt = "1"
Else
.ReturnReceipt = "0"
End If
.Sign = "1"
'.encrypt ="0"
'.Principal = session.UserName
'.viewicon ="74"
'.from = session.UserName
'.SaveOptions = 0
'.SecureMail = ""
'.SenderTag = "F"
'''''''''''''' Dateianhang'''''''''''''''''
If Trim$(MailAnhang) <> "" Then
Const embed_ATT = 1454
Set rtitem = .CreateRichTextItem(MailAnhang)
Set EmbeddedObject = rtitem.EmbedObject(embed_ATT, "", MailAnhang, MailAnhang)
End If
''''''''''''''''''''''''''''''''''''''''''
If MailSend Then
.send True
Else
.send False
.Save True
End If
End With
Set NotesDoc = Nothing
Next
Set SessionNotes = Nothing
Set NotesDB = Nothing
Set NotesDoc = Nothing
Set rtitem = Nothing
Set EmbeddedObject = Nothing
Exit_Mail_Click:
Exit Sub
Err_Mail_Click:
MsgBox Err.Description
Resume Exit_Mail_Click
End Sub