Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Klafu am 12.12.13 - 17:03:27

Titel: Anhänge im E-Mail Header
Beitrag von: Klafu am 12.12.13 - 17:03:27
Hallo,

ich habe in einer MailDatenbank das hier erwähnte Problem:
http://www-01.ibm.com/support/docview.wss?uid=swg21328518

Als Lösung schreiben die, dass man das Dokument bearbeiten, speichern und schließen muss, damit die Anhänge im Body-Feld sind.
Manuell klappt das auch.

In der Datenbank gibt es aber einen Agenten, der die E-Mails auf Anhänge prüft. Wenn diese im Header stecken, kann er sie bei der Suche im Body nicht finden. Deswegen wollte ich nun den Lösungsvorschlag mit NotesUIWorkspace.EditDoc(True, doc), Call uidoc.Save und NotesUIWorkspace.EditDoc(False, doc) noch in den manuell aufzurufenden Agenten, mit aufnehmen.

Das BodyFeld bleibt dennoch leer.
Hab ich irgendwo einen Denkfehler?

Chris
Titel: Re: Anhänge im E-Mail Header
Beitrag von: Tode am 12.12.13 - 17:28:34
1. Du kannst den Fehler grundsätzlich umgehen, indem Du die Attachments anders ausliest: Über @Attachmentnames kriegst Du alle, egal wo sie stecken:
Code
varFileNames = Evaluate("@AttachmentNames", doc)
	Forall strFileName in varFileNames
		If strFileName <> "" Then   ' Make sure it's a valid file name
			Set attachedFile = doc.getAttachment(strFileName)
2. Alles mit "UI" wird in einem Agenten nur dann funktionieren, wenn er vom Benutzer manuell oder per @Command([RunAgent]) aufgerufen wird... Background- Agenten oder Agenten, die mit NotesAgent.Run gestartet werden, können keine UI- Aktionen ausführen...
Titel: Re: Anhänge im E-Mail Header
Beitrag von: Klafu am 17.12.13 - 09:38:29
Danke Torsten!
Damit klappts super  :)

Gruß Chris
Titel: Re: Anhänge im E-Mail Header
Beitrag von: Klafu am 04.04.14 - 11:31:11
Hallo,

ich habe nun eine E-Mail, wo ich scheinbar auch mit der Lösung von Torsten nicht weiter komme.
Wir erhalten eine E-Mail mit 2 Anhängen. Gehe ich nun mein Script im Debugger durch kann man direkt sehen, dass das NotesDocument bei hasembedded auf False steht und EmbeddedObjects sowohl im Dokument selbst als auch im Body Item leer ist. Ein Header Item gibt es nicht.

So wird dann das Script abgebrochen da VarFileNames = "" ist.
Wie komm ich sonst an die Anhänge ran? Wo stecken die?   :-\
Titel: Re: Anhänge im E-Mail Header
Beitrag von: thkn777 am 07.04.14 - 10:11:59
Hallo Klafu,
nimm mal bitte @AttachmentNames und schau, ob diese Funktion Deine Anhänge findet. Wenn sonst nichts geht - das geht eigentlich immer.

In LS dann über ein Evaluate, wenn's nötig ist sogar sortiert, z.B. so:

Code
AttachmentNames = Evaluate("@Sort(@AttachmentNames)",doc)

Viel Erfolg,
Th.
Titel: Re: Anhänge im E-Mail Header
Beitrag von: Tode am 07.04.14 - 10:34:51
Code
varFileNames = Evaluate("@AttachmentNames", doc)
	Forall strFileName in varFileNames
		If strFileName <> "" Then   ' Make sure it's a valid file name
			Set attachedFile = doc.getAttachment(strFileName)

Genau das verwendet er ja gerade...
Titel: Re: Anhänge im E-Mail Header
Beitrag von: thkn777 am 07.04.14 - 11:53:23
@Tode
 :-[ Ich wollte auf etwas ganz anderes hinaus. Habe aber inzwischen bemerkt, daß es nicht mein Tag ist... In "Formulieren" und "Kommunikation" falle ich heute glatt durch. Sorry. Geht "Montag" als Entschuldigung durch?

@Klafu
Gibt es passende $FILE Items?

Kannst Du das betreffende Dokument in eine andere DB kopieren?

Kannst Du das Dokument in's Filesystem exportieren, als .EML? Sind die Attachments dann da drin und benutzbar?

Wenn es eine SMTP-Nachricht ist: sind die Attachments im Seitenquelltext zu sehen? Bzw. generell mal die Frage: geht es um reine Notes-Mails, reine SMTP-Mails oder eine DB, in der beide Varianten auftauchen können? Beim nochmaligen Speichern einer empfangenen SMTP-Mail passiert ja so einiges...
Titel: Re: Anhänge im E-Mail Header
Beitrag von: it898ur am 07.04.14 - 15:49:45
Hallo,

bei SMTP-Mails sind die Anhangsnamen manchmal mit @AttachmentNames nicht lesbar - dafür gibt es aber einen Parameter, um das Lesen zu erzwingen.

Aus der Hilfe:
@AttachmentNames( excludeMIMEBody )
Parameter
excludeMIMEBody
Boolesches Ergebnis. Optional.
Geben Sie WAHR (1) an, um große MIME-Elemente, die als Anhänge gespeichert sind (aber inline angezeigt werden), auszuschließen. Dies ist die Vorgabe.
Geben Sie FALSCH (0) an, um große MIME-Elemente, die als Anhänge gespeichert sind (aber inline angezeigt werden), aufzunehmen.

Mit dem Parameter 0 hatte ich bisher keine Probleme - und große Performanceunterschiede konnte ich auch nicht feststellen.

Gruß

André

Titel: Re: Anhänge im E-Mail Header
Beitrag von: Klafu am 09.04.14 - 15:08:14
Super, Danke Andrè!
Ich dachte schon ich suche wieder im faslchen Item oder muss einen ganz anderen Weg finden.
Damit klappts auch bei mir!

Gruß
Chrsi