Lotus Notes / Domino Sonstiges > OLE/COM-Programmierung
eMail aus Access
Ottoeins:
Hallo,
ich bin totaler Notes-Anfänger und habe folgendes Problem:
Mit dem VBA-Code aus Google kann ich eine eMail aus Access generieren, sie wird sofort gesendet. Ich möchte aber, daß die eMail nicht sofort gesendet wird sondern erst nach Betätigung des Senden-Buttons. Es würde mir auch reichen, wenn die eMail zunächst im Entwurfs-Ordner landet und dann händisch verschickt werden muß. Weiß einer Rat?
Gruß und noch schöne Pfingsten
Otto1
--- Code: ---Function SendNotesMail(MailTo$, KopieTo$, Mailtext$, MailAnhang$, _
MailAbsender$, MailBetreff$, Optional MailSenden As Boolean) As Boolean
Dim rtitem As Object
Dim EmbeddedObject As Object
Dim SessionNotes As Object
Dim NotesDB As Object
Dim NotesDoc As Object
Dim EmpfListe() As String
Dim EmpfCnt As Integer
Dim Pos1 As Long
' wenn die Betreffzeile leer ist, dann wird eine erzeugt
If Trim$(MailBetreff) = "" Then
End If
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 vollständig in Notes an!", vbInformation + vbOKOnly
Exit Function
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)
Set NotesDoc = NotesDB.CreateDocument
With NotesDoc
.Form = "Memo"
.Subject = MailBetreff
.sendto = EmpfListe
.CopyTo = KopieTo
'.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 Gesendet gestellt
.ReturnReceipt = "1"
.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
MailSenden = False
' Mail Senden oder Speichern
If MailSenden Then
.Send True
Else
.Save
End If
End With
SendNotesMail = True
Set SessionNotes = Nothing
Set NotesDB = Nothing
Set NotesDoc = Nothing
Set rtitem = Nothing
Set EmbeddedObject = Nothing
Exit_Mail_Click:
Exit Function
Err_Mail_Click:
MsgBox Err.Number & "-" & Err.Description
SendNotesMail = False
Resume Next
End Function
--- Ende Code ---
eknori (retired):
Nun, wenn du den Code gelesen ( und verstanden ) hast, dann wird dir auch der Parameter MailSenden As Boolean im Functionskopf aufgefallen sein.
Da hat der Code Author schon eine Möglichkeit geschaffen, das sofortige Senden zu unterbinden und die Mail lediglich zu speichern. Um das in den "Entwürfen" zu speichern, muss man lediglich ein paar Feldwerte setzen. Die sind mir allerdings nicht präsent.
Einfach mal eine Mail erstellen und als Entwurf speichern. Dann mit einer Mail vergleichen, die sofort versendet wurde. Schon hat man die Unterschiede und die Felder, die man setzen muss.
Ottoeins:
Hallo Ulrich,
danke für Dein eMail. Den Parameter MailSenden habe ich auch gesehen. Allerdings verlangt Notes diesen Parameter, es ist nicht möglich über SAVE die eMail so zu speichern. Auch läßt Notes nicht die Möglichkeit zu, ohne die Vorgabe eines Empfängers die eMail zu generieren. Und somit wird die eMail also wie bereits oben erwähnt, sofort gesendet. Ich bräuchte die Möglichkeit, entweder die eMail ohne Empfänger zu generieren oder die eMail zunächst in den Entwurfsordner zu speichern.
Gruß Otto1
koehlerbv:
Ich befürchte, dieser Code wurde irgendwo "gefunden", aber nicht verstanden.
Zum letzten Posting:
--- Zitat von: Ottoeins am 12.05.08 - 20:02:18 ---Den Parameter MailSenden habe ich auch gesehen. Allerdings verlangt Notes diesen Parameter, es ist nicht möglich über SAVE die eMail so zu speichern.
--- Ende Zitat ---
Das ist Unfug. Der Parameter "MailSenden" ist Bestandteil der VBA-Routine und hat mit Notes so viel zu tun wie mein Garagentor mit dem Startpunkt "S" des Salzburger Flughafens.
Weiterhin:
--- Zitat von: Ottoeins am 12.05.08 - 20:02:18 ---Auch läßt Notes nicht die Möglichkeit zu, ohne die Vorgabe eines Empfängers die eMail zu generieren.
--- Ende Zitat ---
Auch falsch - im doppelten Sinne: Mit Notes (bzw. dem OLE- oder COM-Zugriff auf die Notes-API) wird zunächst ein *Dokument* erzeugt. Ob man dieses dann versendet oder nicht, *muss* man selbst entscheiden.
Wobei wir beim nächsten Punkt wären: Dieser Code-Bestandteil
--- Code: ---MailSenden = False
' Mail Senden oder Speichern
If MailSenden Then
.Send True
Else
.Save
End If
--- Ende Code ---
sagt aus: Die Variable "MailSenden" wird zwangsweise auf False gesetzt, die folgenden Zeilen versenden daher das eMail überhaupt nicht.
So, wie der bisherige Code aussieht, wird ein derart erzeugtes Dokument auch in der Ansicht "Gesendet" angezeigt, da die Items "PostedDate", $MessageType und ExcludeFromView nicht angelegt werden.
Daher:
Ich habe keine Ahnung, was da nun codemässig wirklich getrieben wird. Das letzte Posting von "Otto1" lässt darauf deuten, dass der aktuelle Code anders aussieht als der gepostete.
Zum Code: Wenn nochmals Code gepostet wird, sollten unbedingt alle sowieso auskommentierten Zeilen auch gelöscht werden. Man kann keinem Hilfswilligen zumuten, dass er sich durch das Zeugs auch noch durchwühlt.
Tipp an "Otto1": Ohne die Dokumentation zum Domino-Designer und nur mit gefundenem Code geht hier gar nichts. Aber auch nur mit VBA-Kenntnissen sollte aber schon klar sein, dass in den gemachten Aussagen Widersprüche sein müssen.
Bernhard
Ottoeins:
Hallo Bernhard,
anstatt den VBA-Code zu kommentieren, solltest Du lieber eine ernsthafte Lösung anbieten.
Damit wäre mir und der Sache mehr geholfen.
REM-Zeilen dienen dem besseren Verständnis und gehören natürlich zum Code. Sind Objekt-
Paramenter auskommentiert, kann gerade hier die Lösung stecken.
Im übrigen, daß hier gar nichts geht, sehe ich auch! Deine schlauen Sprüche kannst Du Dir sparen.
Tip an Bernhard:
Laß Dein Garagentor wie es ist und widme Dich den Problemen. Aber sachlich.
Gruß Otto1
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln