Autor Thema: Felder nach öffnen des Dokuments geändert  (Gelesen 1373 mal)

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Felder nach öffnen des Dokuments geändert
« am: 11.03.05 - 17:37:32 »
Folgendes Problem:
Ich öffne ein Mail (per SMTP eingegangen) und will jetzt die Felder Body und Received auslesen. Dabei ist folgendes zu beobachten:

In den Dokumenteigenschaften hat das Doc mehrere Received- und Body-Felder jeweils unterschiedlichen Inhalts.
Beim Öffnen (und Ansehen im Debugger) des Dokuments per uiworkspace.currentdocument.document ist dann folgendes passiert:
1. Es existiert nur noch ein Bodyfeld in der Itemliste des Docs
2. Alle Receivedfelder haben den gleichen Wert.

Was ich tun muss ist aus einem so empfangenen Mail ein Mimekonformes basteln. Dazu muss ich auf die einzelnen Felder auch zugreifen können, was mir aus o.g. Gründen überhaupt nicht gelingt.

Any Ideas
a) warum das so ist
b) wie ich dennoch an die Felder rankomme?
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Felder nach öffnen des Dokuments geändert
« Antwort #1 am: 11.03.05 - 17:56:46 »
Hier vielleicht mal ein Ansatz mit C-API: LDD Thread

Warum allerdings bei Dir nach dem Öffnen das dann scheinbar konvertiert wird, ist mir auch nicht klar  ::)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: Felder nach öffnen des Dokuments geändert
« Antwort #2 am: 11.03.05 - 18:39:15 »
Der Link sieht sehr gut aus, danke :D

Bin mitlerweile draufgekommen, wie ich die Received Items 'nachlade' (indem ich per item.remove die alten rausblase) - nur die Body Items sehe ich nach wie vor nicht - was ziemlich ärgerlich ist. Das werde ich dann wohl tatsächlich über die API lösen müssen...scheiß Notes  ;)
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder nach öffnen des Dokuments geändert
« Antwort #3 am: 11.03.05 - 21:03:23 »
Könnte es sein, dass Du gerade übel Front- und Backend durcheinanderbringst und dafür auch noch Notes verdammst ?
Du kannst doch nicht ein Dokument mit UI-Methoden öffnen und dann annehmen, dass Dir einerseits die Informationen lesbar aufbereitet werden, sie Dir aber gleichzeitig auch noch (scheinbar !) im Backend zur Verfügung.

Mach das pur im Backend (native). Das ist kein Zauber.

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Felder nach öffnen des Dokuments geändert
« Antwort #4 am: 11.03.05 - 21:07:33 »
Mach das pur im Backend (native). Das ist kein Zauber.

Meinst Du wirklich, Bernhard?

So wie das im o.g. Link klingt, ist das schon ein Zauber. Hab jetzt nicht getestet, was z.B. NotesItem.Text hier sagt, aber aufgrund der Angaben befürchte ich nix gutes.


Screenshot ist von einer Spam-Mail, die per SMTP bei mir reinkam:
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Felder nach öffnen des Dokuments geändert
« Antwort #5 am: 11.03.05 - 21:16:44 »
OK, folgender Agent zeigt mir an:

Code
Sub Initialize
	
	Dim uiws As New NotesUIWorkspace
	Dim db As NotesDatabase
	Dim doc As NotesDocument
	Dim strTxt As String	
	Dim intCount As Integer
	Set doc = uiws.CurrentDocument.Document
	
	Forall itm_loop In doc.Items
		If itm_loop.Name = "Body" Then
			
			intCount = intCount + 1	
			
			strTxt = strTxt & Chr(10) & intCount & ": " & itm_loop.Text
			
		End If
		
	End Forall
	
	Msgbox strTxt
	
	
End Sub

Klappt also doch sauber. Getestet unter R6. Email = Spam-Mail die reinkam und sicherlich bösen Code enthält im Anhang.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Felder nach öffnen des Dokuments geändert
« Antwort #6 am: 11.03.05 - 21:20:22 »
Und nun sind nur noch 2 Body Items vorhanden !

Nach Aufruf meines Codes (den Agenten rufe ich auf, nachdem das Dok geöffnet wurde).

Inhalt der Body Items:

Code
Field Name: Body
Data Type: Rich Text
Data Length: 128 bytes
Seq Num: 3
Dup Item ID: 0
Field Flags: SIGN SEAL 

See the attached file for details.

Code
Field Name: Body
Data Type: Rich Text
Data Length: 902 bytes
Seq Num: 3
Dup Item ID: 0
Field Flags: SIGN SEAL 

 - my_details.pif

Vor Aufruf des Agenten 4 Items, Screenshot siehe oben.

Schließe ich dann das Dokument und öffne es erneut, so gibt es wieder 4 Body Items.
« Letzte Änderung: 11.03.05 - 21:22:57 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: Felder nach öffnen des Dokuments geändert
« Antwort #7 am: 11.03.05 - 23:04:05 »
@Bernhard:
Aaaaalso:
Ich habe natürlich nicht nur über das UI-Doc, sondern sehr wohl über das Back-End Doc zugegriffen (über die UNID) - und: Das ändert am Verhalten gar nichts (was auch eigenartig wäre, da ich ja ein bereits vorhandenes Dokument nur lesen will.

@Version6
Ich greife also tatsächlich so sehr es eben geht auf das Backend zu.
Weiterhin habe ich leider keine 6er Clients zur Verfügung - sonst würde ich den Mime Export auch über Notesstream machen - habe ich in 5 leider nicht. Somit muss ich mühselig die Felder in SMTP Header und Body umschreiben.
Leider ist das mit den Body Feldern noch schwieriger als mit den Received Feldern - ich gehe davon aus, dass das was mit dem Datenformat der Felder zu tun hat, und dass das in Script nicht verarbeitet werden (Multipart z.B.) und daher die Felder gar nicht erst angezeigt werden. Habe daher schon befürchtet, dass es über C-Api gehen muss.

Werde am Montag weiterwühlen.
Schönes Wochenende und Danke für die Tips!
Marco

Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz