Hallo zusammen,
ich suche nach einer Möglichkeit aus Access heraus über Notes Emails zu verschicken.
In einem Office Forum bin ich auch auf eine interessante Lösung gestoßen, die für mich fast perfekt ist ... aber eben nur fast.
Leider komme ich mit meinem Problem in dem Office Forum nicht weiter, vielleicht weil es zu spezifisch in den Bereich Notes fällt.
Deswegen versuche ich nun hier mein Glück.
Hier der Code :
Public Sub SendNotesMail2(Subject As String, _
Attachment As String, _
Recipients As Variant, _
CCs As Variant, _
BodyText As Variant, _
SaveIt As Boolean)
'********************************************************************************************
'* Prozedur : SendNotesMail2
'* Datum : 27.12.2006
'* Autor : Dirk Staudenmaier
'*
'* LastEdited : 02.01.2007
'*
'* Zweck : versendet eine Mail per Lotus Notes
'* verwendet EarlyBinding!
'*
'* Getestet : Access2000 / Lotus Notes 6.5 und 7.0
'*
'* Parameter : Subject: der Betreff
'* Attachment: kompletter Pfad des Anhangs, oder Nullstring, falls
'* kein Anhang vorhanden
'* Recipients: die Empfänger
'* CCs: die Kopienempfänger
'* BodyText: der zu formatierende Emailtext
'* SaveIt: True, wenn Kopie der Mail im Ordner "Gesendet" gespeichert
'* werden soll, sonst False
'*
'* Rückgabewert: keine
'********************************************************************************************
'
'Variablen Dimensionieren, die benötigt werden, um das Mail zu senden
Dim objNSession As NotesSession 'Die Notes Session
Dim objNDir As NotesDbDirectory 'Das Verzeichnis der Datenbank
Dim objNMailDB As NotesDatabase 'Die Datenbank
Dim objNMailDoc As NotesDocument 'Das Maildokument selbst
Dim objNAttachment As NotesRichTextItem 'Der Anhang (Richtext)
Dim objNEmbedObj As NotesEmbeddedObject 'Ein eingebettetes Objekt (Anhang)
Dim strUserName As String 'Der Benutzername
Dim strMailDbName As String 'Der Datenbankname
Dim Err_Flag As Boolean 'Fehler aufgetreten?
On Error GoTo ERROR_SendNotesMail2
'Err_Flag initialisieren
Err_Flag = False
'Die Session starten
Set objNSession = CreateObject("Lotus.NotesSession")
'Session initialisieren
Call objNSession.Initialize("chris0702")
'Neues NotesDbDirectory Objekt.
'Parameter ist Servername, Nullstring für lokalen Computer
Set objNDir = objNSession.GetDbDirectory(vbNullString)
'Öffnet die MailDB des aktuellen Users
Set objNMailDB = objNDir.OpenMailDatabase
'Neues Mail-Dokument
Set objNMailDoc = objNMailDB.CreateDocument
With objNMailDoc
'Absender
Call .AppendItemValue("From", objNSession.UserName)
'Kopienempfänger
Call .AppendItemValue("CopyTo", CCs)
'Betreff
Call .AppendItemValue("Subject", Subject)
'Email-Text
Call .AppendItemValue("Body", BodyText)
'Datum
Call .AppendItemValue("PostedDate", Now())
'Beim Versenden im Ordner "Gesendet" speichern?
.SaveMessageOnSend = SaveIt
'Eingebettete Objekte und Anhänge hinzufügen
If Attachment <> "" Then
Set objNAttachment = .CreateRichTextItem("Attachment")
Set objNEmbedObj = objNAttachment.EmbedObject(1454, "", Attachment, _
"Attachment")
End If
'Email senden
.Send 0, Recipients
'Email als gelesen markieren
Call .Save(True, True, True)
End With
On Error GoTo 0
EXIT_SendNotesMail2:
'Rudimentäre Fehlerbehandlung
If Err_Flag = True Then
Call MsgBox("Beim Versand der Email ist ein Fehler aufgetreten. " _
& vbCrLf & "Möglicherweise konnte die Email nicht versendet werden." _
, vbExclamation, "Lotus Notes")
Else
Call MsgBox("Die Email wurde erfolgreich versendet.", vbInformation, "Lotus Notes")
End If
'Aufräumen
Set objNSession = Nothing
Set objNDir = Nothing
Set objNMailDB = Nothing
Set objNMailDoc = Nothing
Set objNAttachment = Nothing
Set objNEmbedObj = Nothing
Exit Sub
ERROR_SendNotesMail2:
Err_Flag = True
Resume EXIT_SendNotesMail2
End Sub
Hiermit wird der Code aufgerufen :
SendNotesMail2 mailThema, "", astrTOs(), astrCCs(), mailText, True
Und hier mein Problem :
Ich möchte in der Variabel mailText den Mailinhalt übergeben.
Dazu habe ich in Access ein Memofeld eingerichtet.
Dort wird der Text inkl. Zeilenumbrüche eingegeben.
Und genau diese Zeilenumbrüche werden in der Mail später nicht mit berücksichtigt.
D.h. folgender Text :
"Dies ist ein Test.
Dies ist die 2. Zeile.
Dies ist die 3. Zeile."
Sieht in der Mail so aus :
"Dies ist ein Test.Dies ist die 2. Zeile.Dies ist die 3. Zeile."
Nun meine zwei Fragen :
1. Gibt es eine Möglichkeit diese Zeilenumbrüche mit an Notes zu übergeben ?
2. Oder gibt es eine Möglichkeit statt des Befehls :
Set objNMailDoc = objNMailDB.CreateDocument
... der ja wohl ein neues Notesdokument aufmacht,
eine in Notes gespeicherte Vorlage aufzurufen ?
Das würde mir evtl. sogar noch mehr weiterhelfen.
Danke schon mal vorab.
Gruß
Christoph