Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Klafu am 19.09.14 - 12:39:28

Titel: Anhänge aus $File lokal ablegen
Beitrag von: Klafu am 19.09.14 - 12:39:28
Hallo zusammen,

ich muss in einer MailDB die Anhänge aller E-Mails zentral ablegen. Das klappt auch mit @AttachmentNames sehr gut, bis auf ein paar Ausnahmen (Nur ein Absender). Bei diesen Ausnahmen hab ich die folgende Gegebenheiten:

doc.HasEmbedded = False
Body.EmbeddedObjects =
Die Anhänge stecken laut Dokumenteigenschaften in einem von mehreren $File Items
Die $File Items kann ich im Debugger unter Doc.Items nicht finden
Auch mit ForAll item In doc.Items und If (UCase(item.Name) = "$FILE") then finde ich im Document kein $File Item

Dazu kommt, dass ich eine If-Scheife gebaut habe, die mir, wenn doc.HasEmbedded = False ist (ist scheinbar bei allen betroffenen $File E-Mails so), über doc.GetFirstItem("$File") (siehe dazu den Link (http://atnotes.de/index.php?topic=17896.0)) anstatt über @AttachmentNames die Anhänge holen soll.

Hier stoße ich zudem auf das Problem, dass es scheinbar egal ist, ob da True oder False steht. Ich hab es nun mehrere Male mit ein und derselben Mail getestet und mal geht mein Script bei der If-Schleife den richtigen Weg und mal den falschen. Siehe Anhang.

Bei direkten Tests ohne die Schleife bleibt mein v2File aber auch leer.

Habt ihr mir einen Tipp wie ich an diese Anhänge kommen kann? Ich hab auch schon diesen  (http://atnotes.de/index.php/topic,29301.msg185069.html#msg185069) Beitrag gelesen und auch ein paar bei IBM aber so ganz komme ich einer Lösung wohl nicht näher.

Chris
Titel: Re: Anhänge aus $File lokal ablegen
Beitrag von: ghostmw am 19.09.14 - 14:28:19
Hi,

sind das "normale" Mails oder Mime-Mails (sieht man den Eigenschaften des Body-Felds da steht dann was mit MIME drin) , vielleicht gibts da bereits den entscheidenden Unterschied ?

Oder die Attachments hängen am Richtextfeld "Body" dran, dann bekommts du sie nicht wie bei dir via doc.hasEmbedded.

Dann solltest du dir das Richtextitem "Body" holen und dort auf ".hasEmbedded" prüfen. Dort kann auch was dranhängen.

In der Notes-Designer Hilfe gibts zu dem Thema "Handling Richtextitem" einiges an Material.
Titel: Re: Anhänge aus $File lokal ablegen
Beitrag von: Tode am 19.09.14 - 17:13:52
Unter bestimmten Umständen liefert doc.HasEmbedded False, obwohl Anhänge drin sind. Diese Abfrage brauchst Du aber auch nicht, weil @AttachmentNamens alles liefert.

Drehs also um:

Code
varFileNames = Evaluate( "@AttachmentNames", doc )
If varFileNames(0) <> "" then
Titel: Re: Anhänge aus $File lokal ablegen
Beitrag von: Klafu am 22.09.14 - 10:15:24
Hallo Marco,

ja. Es sind MIME E-Mails. Wie muss ich das verstehen, dass die Anhänge vielleicht am Body dran hängen?

Die Mail hat laut den Dokumenteigenschaften 7 Body Items und in einem hab ich durch deinen Tipp den folgenden Inhalt gefunden.
Code
Feldname: Body
Datentyp: MIME-Element
Datenlänge: 247 Byte
Seq.-Num.: 4
Doppeleintrags-ID: 3
Feld-Flags: SIGN SEAL 

"
------------=_1411364646-11642-1
Content-Transfer-Encoding: binary
Content-Type: application/octet-stream; name="N_0081_0081056083.pdf"
Content-Disposition: inline; filename="N_0081_0081056083.pdf"

N_0081_0081056083.pdf"
Das ist der Anhang, den ich exportieren möchte. Dazu das passende $File Item
Code
Feldname: $FILE
Datentyp: Angehängtes Objekt
Datenlänge: 57 Byte
Seq.-Num.: 4
Doppeleintrags-ID: 0
Feld-Flags: ATTACH SIGN SEAL SUMMARY 

Objekttyp: Datei
Objekt-ID: 00031272
Objektlänge: 132303
Dateiname: N_0081_0081056083.pdf
Flags: 
Host: 2304
Komprimierungstyp: NONE 
Kodierungstyp: 
Dateiattribute: RW PUBLIC 
Dateigröße: 132303
Datei erstellt: 22.09.2014 07:44:26
Datei geändert: 22.09.2014 07:44:26

Im Debugger sehe ich allerdings nur ein Body Item in dem der Text der Mail drin ist. Wenn ich mir das hole, hab ich auch dort EmbeddedObject =
Wie greife ich auf ein Item zu, das ich im Debugger nicht sehen kann?


Danke Torsten! Als Bedingung ist das klar der bessere Weg.
Titel: Re: Anhänge aus $File lokal ablegen
Beitrag von: Tode am 22.09.14 - 10:35:37
Mal ne persönliche Frage: Wie alt bist Du?  ;)

Ich wusste, dass das in letzter Zeit mehrfach diskutiert wurde, und habe mal kurz im Forum gesucht...
Und bin auf diesen Post (http://atnotes.de/index.php/topic,57080.0.html) gestossen...

Deshalb die Frage nach dem Alter... Altersdemenz? Alzheimer?  ;)

EDIT: Alter sieht man ja im Profil... Dann ist es wohl eher "jugendliche Unerfahrenheit"...
Titel: Re: Anhänge aus $File lokal ablegen
Beitrag von: Thomas Schulte am 22.09.14 - 10:41:24
Und es gibt selbst mit @attachments noch Probleme. Damit bekommt man zwar unter Umständen alle Namen raus. Aber man kann nicht alle verarbeiten. Zumindest nicht mit den Bordmitteln die Domino da bietet.

Ich beschäftige mich mit diesen Problemen seit knapp 5 Jahren.  8)
Titel: Re: Anhänge aus $File lokal ablegen
Beitrag von: Klafu am 22.09.14 - 10:59:48
Oh man. Nein, ich habe den Thread nicht vergessen, Allerdings hab ich mich durch die anderen Thematiken wie dass die Items nur in den Dokumenteigenschaften zu sehen sind und nicht im Debugger und das Misterium mit HasEmbedded / EmbeddedObjects irritieren lassen. So bin ich das Problem falsch angegangen... Und diese Thematiken muss ich wohl einfach so als gegeben hinnehmen.

Danke, dass du mir nochmal "die Augen geöffnet" hast.
Ich hoffe, ich bekomme diese super Unterstützung auch noch, wenn ich nicht mehr in die Kategorie "jugendliche Unerfahrenheit" falle.

Grüße und ein dickes Danke an euch!  :)
Chris