Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Kompasskalle am 21.01.03 - 14:16:14

Titel: Feld Received in Memo-Maske
Beitrag 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.
Titel: Re:Feld Received in Memo-Maske
Beitrag von: wflamme am 21.01.03 - 23:32:32
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