Hallo Forum,
ich habe das Problem, dass Dateianhänge mit Sonderzeichen (ä,ü,ö usw.) per backend Agent vom Dominoserver die auf die Festplatte abgelegt werden sollen.
Diese Dateienanhänge mit Sonderzeichen werden aber nicht korrekt im Filesystem abgelegt.
Die Sonderzeichen werden falsch dargestellt.
Ich detache die Dateianhänge von E-Mails in ein konfiguriertes Fileverzeichnis.
Siehe Code:
.....
' Funktion löst alle Attachments direkt im Body Feld mit Originalnamen.
Set rtItem = mDoc.Getfirstitem("Body")
If Not rtItem Is Nothing Then
lauf = -1
If ( rtitem.Type = RICHTEXT ) Then
' Wenn kein Attachment im Bodyfeld liegt, wird eine Type missmache geworfen! Bug ist der IBM gemeldet.
On Error GoTo noAttachmentinBody
ForAll o In rtItem.EmbeddedObjects
On Error GoTo errhandler
If ( o.Type = EMBED_ATTACHMENT ) Then
Set objAttachment = Nothing
Set objAttachment = rtItem.Getembeddedobject(o.name)
lauf = lauf + 1
ReDim Preserve FileArray1(1, lauf)
FileArray1(0, lauf) = o.Name
'-------------------------------------------------------------
filename = objAttachment.Source
OrgFilename = objAttachment.Source
' Da mehrere Attachments mit gleichem Namen in Bodyfeldern möglich sind --->
' Prüfen ob der Name schon im Array vorhanden ist. Wenn ja, so lange weiter suchen,
' bis keine fortlaufende Nummer mehr vorhanden ist. Dieser Wert wird dann übergeben.
Dim FileExistInArray
FileExistInArray = True
fileIndex = 0
Do While FileExistInArray = True
fileIndex = fileIndex + 1
' Im Array suchen
foundFlag = False
For a = 0 To lauf
If FileArray1(1, a) = filename Then
' File schon vorhanden
foundFlag = True
Exit For
End If
Next
If foundFlag = True Then
' Laufende Nummer im Dateinamen hochzählen
filename = C_LeftBack(OrgFilename, ".") +" (" + Trim(Str(fileIndex)) + ")." + C_RightBack(OrgFilename, ".")
Else
' Ende Do --> File noch nicht vorhanden
FileExistInArray = False
End If
Loop
'-------------------------------------------------------------
FileArray1(1, lauf) = filename
Call objAttachment.ExtractFile(C_PathSeparator(filepath2 &"\" & filename))
Call C_ALog("", 3, "files: " + o.Name + " (" + filename + ")", "")
' In die Liste der Attachments aufnehmen (Mit Namen der Datei wie diese im Filesystem liegt.)
FileArray = C_AppendArray(FileArray, C_PathSeparator(filepath2 &"\" & filename), "string")
End if
End ForAll
End if
End If
noAttachmentinBody:
....
Da das Ganze bei Test-Systemumgebungen wie Windows Server 2008 (64 Bit), Windows XP (32 Bit) und Open Suse 11.4 funktioniert, tippe ich, dass die Ursache irgendeine Systemeinstellung ist!
Kann hier jemand weiter helfen?
Domino Server:Version 8.5.3 FP2HF25 (32 Bit)
Keine Sprachpakete installiert
Betriebssystem:Suse Linux Enterprise Server 11 SP1 (64 Bit)
Linux 2.6.32.12-0.7 –default
Default Language: Englisch
Grüße
Bernd