Autor Thema: Mailinhalt in andere DB übernehmen  (Gelesen 3942 mal)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Mailinhalt in andere DB übernehmen
« am: 30.06.04 - 15:28:33 »
Hi,

heute hab' auch mal ein Problem.

Ich habe folgende Anforderung: in einer Vorgangsdatenbank sollen auch eingegangene Mails eingefügt werden und einer Adresse zugeordnet werden.

So weit so gut.
Das Auslesen der Inbox, das Übernehmen des Absenders und des Themas ist kein Problem, das Zuordnen zu einer Adresse auch nicht.

Problem ist die Übernahme des Mailtextes. Ich habe Mails, die enthalten mehrere Body-Felder und außerdem scheinen sie mimecodiert zu sein. Siehe Anhang.

Wie bekomme ich nun den Mailtext in mein Dokument? Die normale Methode RTF-Inhalte zu kopieren, mit AppendRTItem, funktioniert nicht.

Was funktioniert ist CopyAllItems, aber ich will nicht alle Felder des Mails in meinem Vorgangsdokument haben.

Kann mir jemand weiterhelfen?   ???


Axel
« Letzte Änderung: 30.06.04 - 15:38:03 von Axel »
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Mailinhalt in andere DB übernehmen
« Antwort #1 am: 30.06.04 - 23:51:31 »
... ich habe das gleiche Problem in meiner persönlcihen Support-Datenbank. Bei der Problemlösung habe ich so viel Zeit verschoosen, daß ich der einfach-heit-halber dazu übergegangen bin, das Dokument als Kopie zu übernehmen - die ganzen Fallunterscheidungen konnte ich nicht abfangen, da ich es mit sehr vielen Mail-Clients zu tun hatte, und bald jede Mail anders herinkam. Ich nehme also lieber die überflüssigen Felder in Kauf...

ata
Grüßle Toni :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Mailinhalt in andere DB übernehmen
« Antwort #2 am: 01.07.04 - 00:26:15 »
Gerade im Zusammenhang mit
- Kodierungen
- grossen Attachments
- OLE-Objekten
- u.ä.
folge ich hier zu 100% Antons Vorgehen. Die "Nebengeräusche" sind lässlich, bestimmte unerwünschte Items kann man auch nach dem CopyToDatabase wieder entfernen. Wenn man eine sichere Item-Liste (entspr. der vorliegenden Situation) hat, kann man sogar alle Items, die nicht der eigenen white list entsprechen, entfernen. Aber auch hier muss schon wieder Aufwand und Nutzen (und Risiken) abgewogen werden.

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Mailinhalt in andere DB übernehmen
« Antwort #3 am: 01.07.04 - 10:44:35 »
Hi,

vielen Dank für die Hinweise.  

Einen Punkt hatte ich bei meiner Fragestelung vergessen. Es soll eine andere Maske sein, also nicht die Memo-Maske aus der Mail-DB. Die Maske enthält außer den Mailinfos (Absender, Mailinhalt usw.) auch noch infos zur Adresse, Bearbeiter usw.

Hab' gestern Abend auch noch eine Lösung gefunden. Die zielt in eure Richtung.

Übernahme mit CopyAllItems
Alle Felder außer Body und $File löschen (ForAll item in newdoc.items...)
Zuweisen der Maske (newdoc.Form = ...)
Füllen der entsprechenden Felder

Scheint soweit ich das getestet habe, mit allen möglichen Mailinhalten zu funktionieren.


Axel

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Mailinhalt in andere DB übernehmen
« Antwort #4 am: 01.07.04 - 11:01:11 »
... ich hätte das Dokuemnt kopiert und nur die Maske umgeschossen...

ata
Grüßle Toni :)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Mailinhalt in andere DB übernehmen
« Antwort #5 am: 01.07.04 - 11:51:52 »
Hi,

auch eine Alternative. Ich denke mal, dass sich die beiden Lösungsansätze von der Perfomance nicht viel unterscheiden.

Da zeigt sich wieder mal, dass viele Wege nach Rom führen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline mahonri

  • Aktives Mitglied
  • ***
  • Beiträge: 128
  • Geschlecht: Männlich
  • Schon mal Domino mit Servern gespielt
Re:Mailinhalt in andere DB übernehmen
« Antwort #6 am: 01.07.04 - 11:59:34 »
Wie wäre es damit, die Mail einfach per doc.RenderToRTItem in das Zieldokument einzufügen?
Thomas

P-CLP Development 4,5,6
P-CLP Admin 5
CLP Admin 6

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Mailinhalt in andere DB übernehmen
« Antwort #7 am: 01.07.04 - 12:02:01 »
Hi,

in dem Fall nicht, denn dann hab ich das ganze Mail in einem Feld. Ich brauche aber die Infos in getrennten Feldern.

Außerdem, was passiert mit Dateianhängen?

Axel
« Letzte Änderung: 01.07.04 - 12:02:47 von Axel »
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline mahonri

  • Aktives Mitglied
  • ***
  • Beiträge: 128
  • Geschlecht: Männlich
  • Schon mal Domino mit Servern gespielt
Re:Mailinhalt in andere DB übernehmen
« Antwort #8 am: 01.07.04 - 12:07:37 »
Die Infos kann man vorher auslesen und hat sie halt doppelt.
Dateianhänge werden mitgenommen.
Thomas

P-CLP Development 4,5,6
P-CLP Admin 5
CLP Admin 6

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Mailinhalt in andere DB übernehmen
« Antwort #9 am: 01.07.04 - 12:19:43 »
Hi,

ich werde es mal probieren. Wahrscheinlich werde ich das aber nicht verwenden können, da soeben, sozusagen als neue "Gemeinheit"  :o, die Anforderung kam, dass gewählt werden soll, ob die Anhänge übernommen werden sollen oder nicht.

Wegen der DB-Größe.

Ich glaube am flexibelsten bin ich mit der anderen Variante (CopyToDatabase bzw. CopyAllItems ...)

Axel

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Mailinhalt in andere DB übernehmen
« Antwort #10 am: 02.07.04 - 19:41:15 »
Hi Axel,

vielleicht siehe ich das jetzt zu simpel, aber geht das nicht einfacher?

Gegeben ist ein Maildokument. Ausgewählte Items sollen in ein Zieldokument übertragen werden.

Wie wäre es denn dann mit einem simplen:
Dim itemBody As NotesItem
Set itemBody = doc.GetFirstItem( "Body" )
Call itemBody.CopyItemToDocument( docNew, "myBody" )
Dim itemMaildatum As NotesItem
Set itemMaildatum = doc.GetFirstItem( "PostedDate" )
Call itemMaildatum.CopyItemToDocument( docNew, "myDate" )

Matthias
Matthias

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


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Mailinhalt in andere DB übernehmen
« Antwort #11 am: 02.07.04 - 20:19:19 »
Jo, Matthias. Und Notes ist so freundlich, bei grossen RT-Fields mit dieser Methode auch mehrere gleichnamige Items samt zugehöriger Attachments mitzukopieren. Dein Vorschlag ist m.E. der praktikabelste.
Nur kodiert darf nix sein ...

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Mailinhalt in andere DB übernehmen
« Antwort #12 am: 05.07.04 - 10:58:35 »
Hi,

ich hab nochmal ein bisschen rumprobiert und bin zu folgendem Ergebnis gekommen.

Meine usprünglich favorisierte Lösung,

Übernahme mit CopyAllItems
Alle Felder außer Body und $File löschen (ForAll item in newdoc.items...)
Zuweisen der Maske (newdoc.Form = ...)
Füllen der entsprechenden Felder

funktioniert nicht immer zuverlässig. Bei manchen Mails bekomme ich in der ForAll - Schleifen die Fehlermeldung Object variable not set. Warum auch immer. Ich konnte das selbst im Debugger nicht nachvollziehen.


@TMC
Deine Lösung funktioniert auch nicht ganz sauber, denn bei HTML-Mails wird manchmal die Formatierung nicht sauber durchgeführt und Bilder die aus dem Internet nachgeladen werden, werden nicht dargestellt (es steht an der Stelle nur ein roter Text "Image").

Ich bin nun soweit, auch aus Zeitgründen, mit CopyAllItems zu arbeiten und halt den überflüssigen Feldbalast mit in Kauf zu nehmen. Aber sei's drum.  :-\


Ein Phänomen ist mir bei den Versuchen noch aufgefallen, dass ich mir nicht erklären kann.

Die Auswahl der Mails erfolgt über eine PicklistCollection und der Zugriff auf das Dokument dann über collection.GetFirstDocument. Wenn ich mit aber nun im Debugger die Item-Liste des Dokumentes anschaue, sehe ich nicht alle Felder. Sehr oft fehlt z.B. das Feld $File, obwohl in Mail vorhanden. Kann sich das einer erklären?  ??? ???

Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz