Hallo,
leider muß ich noch mal das leidige Thema Attachments ansprechen. Irgendwie komme ich nicht weiter.
Ich habe für die Notes5 Mailschablone --> Memo-Maske --> Queryclose folgendes versucht.
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Call cMemoObject.QueryClose(Continue)
Call zippen(Source)
End Sub
Sub zippen ( Source As Notesuidocument)
Dim s As New notessession
Dim doc As NotesDocument
Dim object As notesembeddedobject
Dim datei,tempdir As String
Dim counter As Integer
Dim files() As String
Dim filesname() As String
Set doc=source.document
If Not doc Is Nothing Then
If doc.hasembedded Then
counter=0
TempDir = Environ("Temp") 'aus der systemumgebung den temp-pfad holen
Forall rtitem In doc.items
If (rtItem.type=RICHTEXT) Then
If Not Isempty(rtitem.embeddedobjects) Then
Forall obj In rtItem.embeddedobjects
If obj.type=embed_attachment Then
datei=tempdir+"\"+obj.name
counter=counter+1
Redim Preserve files(counter) As String
files(counter)=datei
Redim Preserve filesname(counter) As String
filesname(counter)=obj.name
obj.extractfile datei
Call obj.remove
Call doc.save(True,True,True)
End If
End Forall
If counter>0 Then
rc=zCreateNewZip(tempdir+"\attachment.zip")
For i=1 To counter
rc=zOrderFile(files(i),filesname(i),0)
Next
rc=zCompressFiles(tempdir,"",3,False,0,"compressed",Nothing)
rc=zCloseZipFile
For i=1 To counter
Setfileattr files(i),ATTR_NORMAL
Kill files(i)
Next
Set object=rtItem.embedobject(EMBED_ATTACHMENT, "",tempdir+"\attachment.zip")
Setfileattr tempdir+"\attachment.zip",ATTR_NORMAL
Kill tempdir+"\attachment.zip"
Call doc.save(True,True,True)
End If
End If
End If
End Forall
End If
End If
End Sub
Das Zippen funktioniert, aber es tritt folgender Effekt auf.
Wenn ich eine neue Mail schreibe und ein Attachment reinhänge und auf senden klicke, wird meine Sub komplett abgearbeitet, aber das Attachment wird nicht ausgetauscht.
Mache ich eine Mail mit einem Attachment normal auf und schließe es anschließen, wird das Attachment korrekt ausgetauscht gegen die gezippte Datei. Mache ich dies jedoch mehrmals wächst das Maildocument jeweils um ein paar Bytes.
Kann mir jemand helfen?
Man möge mir den Spaghetti-Code verzeihen
(Achso, ich habe für das Queryopen eine sub geschrieben, welche jedes zip-Attachment entpackt und die entpackten dateien wieder reinhängt bevor das document angezeigt wird. Das funktioniert scheinbar auch fehlerfrei.)