Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: kai am 14.01.04 - 14:52:55
-
Hallo,
mein problem:
Ich möchte einen Agenten oder ein Programm schreiben, das folgendes leistet:
1. Nach dem Eingang einer neuen Mail, soll diese geöffnet und der
Text in eine AscII-Datei (*.txt) in einem bestimmten Vereichnis
(d:\daten\texte) exportiert werden.
2. Danach soll die Mail wieder geschlossen und archiviert werden.
3. Ohne Anhang
Leider habe ich in der Schatztruhe nichts passendes gefunden!
Ich habe schon am 16.12.03 ::) mal Nachgefragt aber leider ohne
Erfolg ???
Hilfe Hilfe ???
-
Soll das ein Agent sein, der Serverweit funktioniert oder
nur in einem, z.B. Deinem Postverzeichnis ?
Ciao
Don Pasquale
-
Hi,
den Text müßte man über das NotesRichtextitem und die Methode GetFormattedText bekommen können. Das Body-Feld als RTItem deklarieren und den Text daraus in eine Variable pumpen.
Mit dem Schreiben in Text-Files kenne ich mich nicht aus, aber das sollte dann wohl auch machbar sein.
Die Punkte 2 und 3 habe ich noch nicht verstanden.
Was meinst Du mit archivieren ? Meinst Du die Standardarchivierung, die Notes mitliefert ?
Was heißt ohne Anhang ? Sollen Anhänge generell gelöscht werden ?
-
Der Agent soll serverweit laufen.
Wenn der Agent die Mail in ein Textfile exportiert hat, soll danach die Mail mit der Standard-Archivierung automatisch (also ohne manuellen Anstoß über das Menü Aktionen) weg archiviert werden.
Die Mails kommen immer ohne Anhang. Dieser brauch also nicht berücksichtigt werden.
Kai
-
@Kai
und was passiert mit dem Textfile ?
Ciao
Don Pasquale
-
Die Daten *.txt werden dann weiterverarbeitet und ausgewertet.
Es handelt sich um Protokolldateien
Kai
-
Ich habe hier jetzt etwas, dass speichert aus angewählten
Mails das Bodyfeld ab, allerdings nur als Plaintext.
Hat jemand eine Idee, wie ich das Body-Feld ohne Informationsverluste
abspeichern kann ?
Const PFAD = "C:\TEMP\"
Dim plainText As String
Dim fileNum As Integer
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set session = New notessession
Set db=session.currentdatabase
Set dc=db.UnprocessedDocuments
Set doc=dc.GetFirstDocument
While Not (doc Is Nothing)
Set rtitem = doc.GetFirstItem( "body" )
If ( rtitem.Type = RICHTEXT ) Then
plainText = rtitem.GetFormattedText( False, 0 )
End If
fileNum = Freefile
Open Pfad & "mail.dat" For Output As fileNum
Print #fileNum, plainText
Close #fileNum
Return
Set doc = dc.GetNextDocument(doc)
Wend
-
Danke ich probiere es mal aus, brauche aber möglichst den gesamten Body ohne Datenverlust.
Danke Kai
-
Das habe ich mir schon gedacht, teste doch mal was in Richtung
binärdatei.
Aber wie willst Du diese Dateien denn dann wieder lesen ?
Ciao
Don Pasquale
-
Punkt 1 der Anforderungen war doch eine zu erstellende ASCII-Datei. Genau das macht doch Don's Code.
Bernhard
-
Genau, ASCII - Dateien schliessen Formatierung aus, also Dons Code ist genau der ursprünglichen Anforderung entsprechend. Wenn das Protokolle sind, sollte die Formatierung eh keine Rolle spielen, und wenn sie automatisch weiterverarbeitet werden, ebenfalls.
-
Mich würde jetzt aber schon interessieren, wie ich so ein Body Feld in eine Datei reinquetsche ? Der gute Kai scheint an Programmierung ja kein echtes interesse zu haben
Ciao
Don Pasquale
-
Aber das hattest Du doch schon geschrieben: NotesRichTextItem.GetFormattedText ergibt den Inhalt des RTFs im ASCII-Format ...
Bernhard
-
Mist,
ich meine natürlich wie ich sämtliche Sonderzeichen da mit reinquetsche,
also das pure BodyFeld.
Ciao
Don Pasquale
-
In ein ASCII-File geht das doch gar nicht ...
Willst Du "alles" (ausser Attachments), musst Du entweder solche LSXe wie midas oder rtlib bemühen, oder über's FrontEnd Dein RTF in ein RT-fähiges Programm kopulieren (= kopieren - SEMEAPHOROS !!! LIEST DU DAS ?) und von dort aus speichern.
Oder wir reden gerade aneinander vorbei, Don Paquale ...
Ciao,
Bernhard
-
Zur Stelle :-)
-
Es geht um das BODY-Feld ( nicht die Attachments), wenn die
wie oben getan, abspeichere, dann gehen die Formatierungen flöten.
Und, ich will das im Back-End machen.
Wonach muss ich da schauen ?
rtlib midas ? Nie gehört.
Ciao
Don Pasquale
-
Tja, die Möglichkeiten, von den ich weiss (aber die ich bisher glücklicherweise nie bemühen musste, da sich irgendwie immer eine andere Lösung fand, und sei es "Machen wir nicht!"):
- rtlib
- Midas
- API (also selbst Hand anlegen am Innersten von Lokus Notes)
Ich kann also leider nicht weiterhelfen (bin aber natürlich am Dazulernen sehr interessiert).
Bernhard
-
also sehr einfach geht das in ND6 mit dem DXL-Exporter.
und für R5 gibts ein DXL Toolkit, damit sollte das auch möglich sein.
was da rauskommt ist ein XML-Dokument (=ASCII), in dem IMHO alle Inhalte samt Formatierungsinformationen enthalten sind.
-
Midas: RichText Add On von Geniisoft (Ben Langhinrichs):
http://www.geniisoft.com
rtlib: LotusScript Library mit massenweise Routinen zum Pflegen von RichText, von Normunds Kalnberzins
http://www.rtlib.com
... und vom gleichen Normunds auch das passende Buch für das Programmieren der C-API direkt aus Lotus-Script heraus:
http://www.ls2capi.com
-
@Thomas Völk
... wo gibt es das Toolkit - hast du ne URL?
ata
-
Alle Toolkits (http://www-10.lotus.com/ldd/toolkits)
Da ist auch das XML Toolkit zu finden.
-
Das XML-Toolkit ist aber nur was für die ganz Harten:
Guides users and provides a complete reference for the Lotus XML Toolkit, which lets C++ and Java programmers export Domino data to XML and import XML data to Domino databases.
Bernhard ;D
-
@Kai
ist das thema nun erledigt ? Hat alles geklappt ? Waren doch nur
ASCII Dateien gefragt ?
Eine Rückmeldung wäre von allernettester Höflichkeit !
irritiert
Don Pasquale