Autor Thema: E-Mails nach Inhalten parsen  (Gelesen 4037 mal)

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
E-Mails nach Inhalten parsen
« am: 30.12.04 - 11:11:15 »
Hallo Zusammen
Ich habe die Idee im Kopf Mails nach definierten Strukturen zu parsen - viellicht mit regulären Ausdrücken - und dann neue Dokumente - mit neuer Schablone -mit den ausgelesenen Daten zu estellen. Konkret möchte ich Mails, die über ein fixes Webformular einer Website abgeschickt werden, mit Lotus Notes verarbeiten.

Habt ihr sowas schonmal gemacht, oder habt Ansätze, wie dies am einfachsten zu realisieren ist?

Lieber Gruss
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: E-Mails nach Inhalten parsen
« Antwort #1 am: 30.12.04 - 11:13:45 »
Basiert die Website auf Domino? Wenn ja, braucht es eigentlich keine Mails. Formular ausfüllen lassen in einer EingabeDB, und im WebQuerySave Ereignis den Input mit LS abarbeiten und entsprechend drauf reagieren. Wie schwer das dann zu machen ist, hat man selber in der Hand mit einer passenden Gestaltung des Eingabeformulars (Maske)
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: E-Mails nach Inhalten parsen
« Antwort #2 am: 30.12.04 - 11:22:26 »
Hallo!
Nein, ist kein Domino Webserver, sondern ein externer Server, von dem wir die Mails erhalten. An der Struktur der Mails können wir leider nichts ändern.

Gruss
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: E-Mails nach Inhalten parsen
« Antwort #3 am: 30.12.04 - 11:24:09 »
Ok, dann lasst das in eine Mailin-Datenbank laufen und fangt es mit einem After Mail Arrives Agenten ab
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Marinero Atlántico

  • Gast
Re: E-Mails nach Inhalten parsen
« Antwort #4 am: 30.12.04 - 11:35:31 »
Regular expressions gibt es mit java.
Wenn ich nicht völlig vergesslich bin, sind regex erst ab 1.4 Bestandteil des jsdk (domino 6.5).
Für vorherige Java-Versionen (1.3.1 -> Domino6) existieren Zusatzpackages. (z.B. hier: http://jakarta.apache.org/regexp/index.html ).
Du kannst die entsprechenden jars in deine Domino-JVM einbinden (über JavaUserClasses in notes.ini oder als Zusatzlibs direkt in den Agenten).

Gruß Axel

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: E-Mails nach Inhalten parsen
« Antwort #5 am: 30.12.04 - 11:45:05 »
Wir haben Domino 6.5.2 im Einsatz, so sollte es kein Problem von wegen Javalibs geben. Da ich jedoch noch nie Java mit Domino verwendert habe, habe ich keine Ahnung, wie ich die Implementation in Java angehen könnte.  ::) Also wenn ihr gerade ein Beispiel habt, wie ein Mail z.B: per Java verarbeitet werden könnte - insbesondere Zugriff auf bestimmte Stellen eines E-Mails - wäre mir mit einem Beipiel sehr gedient.
Wenn geht, würde ich lieber auf Java verzichten und das ganze mit LS realisieren, deoch weiss ich nicht, wie einfach Mails mit LS geparst werden können. Schön wäre schon, wenn schon Methoden, wie Regex, bestehen würden...

Grüsse
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Marinero Atlántico

  • Gast
Re: E-Mails nach Inhalten parsen
« Antwort #6 am: 30.12.04 - 11:58:05 »
LotusScript hat imho keine Regex Funktionalitäten.
Vielleicht gibt es irgendwo Zusatzfunktionalitäten via dll oder so.
Notes besitzt eine Java Hilfe, wo es eine Menge mehr oder minder hilfreichen Java code gibt.
Falls du dich für Java entscheidest, kannst du dort anfangen und ggbfls konkretere Fragen stellen.
Btw. hat der Javaranch Moderator Mehran (Max) Habibi ein didaktisches konkret empfehlenswertes Einsteigerbuch für Regex in Java für Apress geschrieben

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: E-Mails nach Inhalten parsen
« Antwort #7 am: 30.12.04 - 12:21:41 »
LS hat kein Regex, das ist richtig. Ist aber durchaus denkbar, dass man da fertige Algorithmen finden kann, beispielsweise bei OpenNTF
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Marinero Atlántico

  • Gast
Re: E-Mails nach Inhalten parsen
« Antwort #8 am: 30.12.04 - 12:44:10 »
... hängt von der Aufgabe ab, ob du regex brauchst.
Sehe es eindeutig als ein Nebenthema, wenn auch ein interessantes.
Bringt für das parsen eine Menge an Flexibilität und Überschaubarkeit. Hat aber eine gewisse Lernkurve ...
Gute regex zu schreiben halte ich für wesentlich schwieriger als mit Java auf Domino Objekte wie Dokumente zuzugreifen. Die Java-Api (s. Hilfe) ist da sehr, sehr, sehr ähnlich wie die LotusScript Api.
Wobei manche Perl oder Unix/Linux Leute regex aus dem eff-eff können.
« Letzte Änderung: 30.12.04 - 12:48:56 von Marinero Atlántico »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: E-Mails nach Inhalten parsen
« Antwort #9 am: 30.12.04 - 13:35:59 »
Julian Robichaux hat da was auf seiner Seite ( An agent that allows you to use regular expressions in LotusScript ) http://www.nsftools.com/tips/NotesTips.htm#ls2jexamples
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Marinero Atlántico

  • Gast
Re: E-Mails nach Inhalten parsen
« Antwort #10 am: 30.12.04 - 14:09:27 »
... nett.
Nur so als Hinweis: Wobei ich ehrlichgesagt mit diesem LS2J Zeugs sehr, sehr vorsichtig wäre (LS2J + memory leak in google).
Es ist wirklich nicht schwierig das alles in Java zu schreiben.
Ausserdem ist das fröhliche Aufrufen von Methoden über Prozessräume (Java VM und LotusScript code laufen im Rechner wo ganz anders) weder gut für Performance noch Übersichtlichkeit.
Es gibt nix was ich weniger brauchen kann als so ein feature zu benutzen und dann gibt es einen memory leak oder sonstige obskures Zeugs.

Axel

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: E-Mails nach Inhalten parsen
« Antwort #11 am: 30.12.04 - 23:52:02 »
Bevor hier noch weiter theoretisiert wird: Kannst Du mal näheres über Deine Anforderungen "Das kommt 'rein - das soll 'rauskommen" schreiben ? Ohne diese Infos nützen ja auch regualar expressions gar nix.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: E-Mails nach Inhalten parsen
« Antwort #12 am: 31.12.04 - 00:01:26 »
Genau, da warte ich eigentlich auch schon drauf ....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: E-Mails nach Inhalten parsen
« Antwort #13 am: 31.12.04 - 10:47:10 »
Hallo Zusammen

Ich möchte aus Mails mit bleibender Struktur die Postadresse herausparsen und schlisslich auf den Wert per Variabel zugreifen. Vor und nach der Adresse steht in diesem Mail ein ****, was super für Regex oder so verwendet werden könnte. Zudem möchte ich, dass das Mail nach einem Geldbetrag geparst wird und diesen Wert schliesslich als Feld in einem neuen Dokument gespeichert wird.
Auf die Idee bin ich gekommen, weil ich mails mit Geldbetrag angaben erhalte, jedoch mit einem Blosen mail nicht den Betrag in einer Ansicht erscheinen lassen kann. Daher bin ich auf die Idee von neuen Dokumenten gekommen. Das gnaze wäre dann eine Struktur-Automat, der Mails in bestimmte Dokumente konvertiert...
Seid ihr drausgekommen?

Gruss
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: E-Mails nach Inhalten parsen
« Antwort #14 am: 31.12.04 - 12:08:37 »
poste doch mal beispielhaft eine dieser Mails; möglicherweise läßt sich das "Parsen" einfacher gestalten, als angenommen ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: E-Mails nach Inhalten parsen
« Antwort #15 am: 31.12.04 - 12:50:28 »
Hallo Zusammen

Ein Mail kann so aussehen:
Code
TransaktionsID: 1111111
Zusatzparameter:

Spende für: Zweck

Zahlungsart: Visa
Zahlungsnummer: 1111111
Transaktionsbestätigung für Spendenbetrag: 200
Währung: CHF
ESR Member:
ESR Referenznummer:
ESR Nummer:
Spender wünscht keine Werbung. true

***********************************************
Adresse:
Herr
Nachname Vorname
Strasse
PLZ Ort

***********************************************

Gut wäre, wenn das Parsen auf der Seite des Servers geschehen würde, wie z.B. über einen Agenten, weil die Clients R5 und R6 sind.

LG Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: E-Mails nach Inhalten parsen
« Antwort #16 am: 31.12.04 - 13:15:38 »
Also, um das zu parsen, wenn es denn so stabil ist, wie Du das schilderst, braucht es nicht wirklich regex. R5 oder R6 spielt da auch fast keine Rolle, und dass man das auf dem Server platziert ist so, wie ich das oben vorgeschlagen habe, eigentlich auch gegeben, ein clientseitiges Parsen wäre eigentlich schon eher komplizierter.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: E-Mails nach Inhalten parsen
« Antwort #17 am: 31.12.04 - 13:17:24 »
In diesem Falle - wenn immer diese Formulardaten genauso vorkommen - ganz einfach:

- Text aus Body ziehen
- Zeilenweise aufdröseln
- dabei nach den Kennern suchen wie "Spendenbetrag"
- an der dann erwarteten Stelle den Wert extrahieren (incl. Prüfungen / Konvertierungen)

Du weisst ja faktisch schon, wo oder wonach die Dich interessierenden Daten stehen.

HTH,
Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: E-Mails nach Inhalten parsen
« Antwort #18 am: 31.12.04 - 13:23:57 »
Genau, das erscheint mir jetzt auch eher simpel.

Mit item.Text auslesen.

Dann bietet sich IMHO an, das ganze in eine Liste zu überführen.
Dadurch hat man schön Zugriff auf die einzelnen Werte, und zieht sich das raus, was man braucht.
Matthias

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


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: E-Mails nach Inhalten parsen
« Antwort #19 am: 31.12.04 - 14:02:50 »
habs mal schnell exemplarisch für die Währung zusammengebraten

Sub Click(Source As Button)
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim col As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim rtItem As Variant
   Dim plaintext As Variant
   Dim retVal As String
   Dim key As String
   Dim pos As Integer
   
   Set db = s.CurrentDatabase
   Set col = db.UnprocessedDocuments
   Set doc = col.GetFirstDocument
   Set rtitem = doc.GetFirstItem( "Body" )
   If ( rtitem.Type = RICHTEXT ) Then
      plainText = rtitem.GetFormattedText( False, 0 )
   End If
   key = "Währung:"
   
   'Msgbox plaintext
   
   
   pos=Instr(1, plaintext, Key)
   'Msgbox pos
   retval = Mid(plaintext,pos + Len(key) + 1 ,3)
   Msgbox retval
End Sub

Ist noch nicht dynamisch, da beim MID noch mit einem  festen Wert gearbeitet wird (3)
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz