Domino 9 und frühere Versionen > ND7: Entwicklung
VBA Email automatisch generieren, aber ohne Standard-Signatur
Kommodore:
Hallo,
--- Zitat ---schau in der Felderliste des geschlossenen Dokuments nach dem Inhalt von Body. Wenn dort keine Signatur enthalten ist, passiert es beim Öffnen.
--- Ende Zitat ---
Besteht die Möglichkeit diesen Punkt ausführlicher zu beschreiben, vielen Dank!
Ich habe den Quelltext nicht 1 zu 1 übernommen, da ich die Emails erst generieren lasse, um zu sehen wie die Email
zusammengesetzt wird oder wurde nach der Verarbeitung. Die Änderung zu dem o.g. Quelltext habe ich in
'**************
eigene Anpassung
'**************
gesetzt. Vielleicht liegt es ja da dran!?
Im unterem Beispiel wird eine eigene Signatur im Body angefügt. Trotzdem wird die nicht-gewollte Standard-Signatur des Users vor dem Body eingefügt.
Die Idee ist ja eine eigene Email zu generieren mit eigener Signatur, ohne das Einfügen der Standard-Signatur vor dem generierten Body.
--- Code: ---Function SendMail(Betreff As String, Email As String, Emailtext As String, Zusatztext As String, Attachment As String, Signatur As String)
On Error Resume Next
Dim Maildb As Object 'Die Datenbank
Dim UserName As String 'Der Benutzername
Dim MailDbName As String 'Der Datenbankname
Dim MailDoc As Object 'Das Maildokument selbst
Dim AttachME As Object 'Der Anhang
Dim Session As Object 'Die Notes Session
Dim EmbedObj As Object 'Ein eingebettetes Objekt (Anhang)
Dim SaveIt As Boolean
Dim Subject As String
Dim Attachment2 As String
Dim Recipient As String
Dim cc As String
Dim BodyText As String
Subject = Betreff
'Empfänger der Email
Recipient = Email
'Kopie der Email
cc = ""
'Emailtext
BodyText = Emailtext & Chr(13) & Chr(13) & Zusatztext & Chr(13) & Chr(13) & Signatur
Dim filename As String
Dim numrows As Long
Dim numcols As Integer
Dim R As Long
Dim c As Integer
Dim data
'Die Session starten
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
'Datenbankzugriff
MailDbName = "Pfad der Datenbank.nsf"z.B. C:\Datenbank.nsf
'Datenbank öffnen
Set Maildb = Session.GetDatabase("", MailDbName)
If Maildb.IsOpen = True Then
'Fertig zum mailen!
Else
Maildb.OPENMAIL
End If
'Ein neues Maildokument erstellen
Set MailDoc = Maildb.CreateDocument
MailDoc.Form = "Memo"
MailDoc.Sendto = Recipient & ", " & cc
MailDoc.Subject = Subject
MailDoc.Body = BodyText
MailDoc.SaveMessageOnSend = SaveIt
'Eingebettete Objekte und Anhänge hinzufügen
If Attachment <> "" Then
Set AttachME = MailDoc.CreateRichTextItem("Attachment")
Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment, "Attachment")
MailDoc.CreateRichTextItem ("Attachment")
End If
'****************************************************
Dim Workspace As Object
Set Workspace = CreateObject("Notes.NOTESUIWORKSPACE")
Call Workspace.EDITDOCUMENT(True, MailDoc).GOTOFIELD("Body")
'****************************************************
MsgBox ("Die Mail wurde erstellt")
'-------------------------
'Bis hier wurde die Mail erstellt und noch nicht versandt.
'MailDoc.SEND 0, Recipient 'Das Versenden ist auskommentiert.
'-------------------------
'Aufräumen
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Noth
Set Session = Nothing
Set EmbedObj = Nothing
End Function
--- Ende Code ---
koehlerbv:
Ein im Backend erzeugtes Dokument, noch nicht gespeichert und dann im Frontend sogar im EditMode geöffnet - völlig logisch, dass dann die Signaturroutine der MailDB anspringt ...
Peter Klett:
--- Zitat von: Kommodore am 03.04.12 - 14:47:26 ---Hallo,
--- Zitat ---schau in der Felderliste des geschlossenen Dokuments nach dem Inhalt von Body. Wenn dort keine Signatur enthalten ist, passiert es beim Öffnen.
--- Ende Zitat ---
Besteht die Möglichkeit diesen Punkt ausführlicher zu beschreiben, vielen Dank!
--- Ende Zitat ---
Ich ging davon aus, dass das Dokument vor dem Öffnen gespeichert wird.
Ändere Deine Routine so, dass das Dokument (die Mail) gespeichert wird, aber nicht geöffnet. Dann gehst Du in die Maildatenbank, in der das neue Dokument ist. Dokument markieren (nicht öffnen), Alt+Enter (oder rechte Maus und Eigenschaften Dokument), zweite Lasche Felder (die Lasche mit dem Dreieck), darin nach dem Feld Body suchen (linke Seite) und auf der rechten Seite nach dem Wert sehen.
Kommodore:
Vielen Dank für die schnellen Antworten!
Die Lösung ist wieder mal logisch, wenn man weiß wonach man suchen muss, vielen Dank!
'****************************************************
'Dim Workspace As Object
'Set Workspace = CreateObject("Notes.NOTESUIWORKSPACE")
'Call Workspace.EDITDOCUMENT(True, MailDoc).GOTOFIELD("Body")
'****************************************************
Einach die 3 Zeilen auskommentieren, dann wird die Standard-Signatur nicht gezogen!!! :)
Sondern die Email wird ohne Standard-Signatur generiert und verschickt.
Danke. Viele Grüße Kommodore
koehlerbv:
Hättest Du den Code in der Eröffnung gepostet, wäre die Lösung in Antwort #1 gekommen ;)
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln