Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Kompasskalle am 21.01.03 - 14:16:14
-
Hallo Zusammen,
konnte leider kein "Neues Thema" beginnen - techn. Schwierigkeiten, darum hier meine Frage bzw. mein Problem:
Wenn ich mir Dokumentinformationen einer aMail anschaue, kann es möglich sein, dass das Feld "Received" mehrfach vorkommt. Ich möchte nun versuchen die Infos in 1 Feld einzubringen. Leider hat dies noch nicht funktioniert. Das Feld "Received" befindet sich auch nicht in der Memo-Maske, so dass ich davon ausgehen muss, dass dieses Feld erst später erstellt wird und der entsprechenden Wert eingetragen wird. Kann mir bitte jemand helfen. Ich will diese Info des Feldes nutzen, um gegen Spam-Mail (über welche Server ging die Mail, etc.) vorzugehen.
Vielen Dank und sorry dass ich dieses Problem als Umfrage gestellt habe.
-
Also, ich mach das wie folgt:
Kopie des Memo-Forms als 'Memo with Header'
Vor dem Body zwei Textfelder:
-ReceivedInfo
-AllHeaders
Im PostOpen des Formulars:
Sub Postopen(Source As Notesuidocument)
Dim doc As NotesDocument
Dim docItem As NotesItem
Dim strDisplayThese(10) As String
Dim varDocItems As Variant
Dim varContent As Variant
Dim strLinefeed As String, strLineInsert As String
Dim i As Integer
Set doc=Source.Document
strDisplayThese$(0)={From}
strDisplayThese$(1)={X_Resent_From}
strDisplayThese$(2)={X_envelope_to}
strDisplayThese$(3)={SendTo}
strDisplayThese$(4)={Subject}
strDisplayThese$(5)={MIME_Version}
strDisplayThese$(6)={$Mailer}
strDisplayThese$(7)={$MessageID}
strDisplayThese$(8)={PostedDate}
strDisplayThese$(9)={SMTPOriginator}
strLinefeed$=Chr$(13) & Chr$(10)
Source.EditMode=True
'Now Received-Info
Do While Not doc.GetFirstItem({Received}) Is Nothing
Set varDocItem2=doc.GetFirstItem({Received})
varContent=varDocItem2.Values
Forall varTmp In varContent
strLineInsert$=varDocItem2.Name & ": " & Fulltrim(Cstr(varTmp))
Call Source.FieldAppendText({ReceivedInfo}, strLinefeed$ & strLineInsert$)
End Forall
Call varDocItem2.Remove
Loop
'Rest
Forall varDocItem In doc.Items
For i%=Lbound(strDisplayThese()) To Ubound(strDisplayThese())
If Lcase(varDocItem.Name)=Lcase(strDisplayThese(i%)) Then
varContent=varDocItem.Values
Forall varTmp In varContent
strLineInsert$=varDocItem.Name & ": " & Fulltrim(Cstr(varTmp))
Call Source.FieldAppendText({AllHeaders}, strLinefeed$ & strLineInsert$)
End Forall
End If
Next
End Forall
'Source.EditMode=False
'Call cMemoObject.PostOpen(Source)
TheEnd:
Exit Sub
ErrorHandler:
Messagebox({Runtime Error in Form: 'Memo with Header'.PostOpen-Event} & strLinefeed$ & {Error } & Err() & { at line } & Erl() & {: } & Error())
Resume TheEnd
End Sub
Alle anderen Query- und Post-Events: Code rauswerfen
So, jetzt Memo öffnen, Form umschalten auf Memo with Header, zack, kommen die Infos. Dann Forward und schwups sitzt die kpl. Mail mit Header im Body.
HTH
Wolfgang