Domino 9 und frühere Versionen > ND8: Entwicklung
Anhänge aus $File lokal ablegen
Klafu:
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) 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 Beitrag gelesen und auch ein paar bei IBM aber so ganz komme ich einer Lösung wohl nicht näher.
Chris
ghostmw:
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.
Tode:
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
--- Ende Code ---
Klafu:
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"
--- Ende Code ---
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
--- Ende Code ---
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.
Tode:
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 gestossen...
Deshalb die Frage nach dem Alter... Altersdemenz? Alzheimer? ;)
EDIT: Alter sieht man ja im Profil... Dann ist es wohl eher "jugendliche Unerfahrenheit"...
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln