Hi,
folgende Ausgangssituation:
Ich kopiere über RenderToRTItem ein Maildokument in eine andere DB in ein Richtextfeld. Klappt soweit einwandfrei.
Nun möchte ich das Dokument entschlüsseln, falls das Mail verschlüsselt ist. Soweit auch kein Problem.
Das Zieldokument ist jedoch auch u.U. public verschlüsselt.
Daher hab ich folgenden Code in meinem Script, das ein Mail in das Dokument rendert:
.....
vPublicEncNames = docThis.PublicEncryptionKeys
.....
Call docThis.RemoveItem(strRTName)
Set rtitem = New NotesRichTextItem( docThis, strRTName )
Call docMail.RenderToRTItem(rtitem)
.....
If docMail.IsEncrypted Then
Forall itm In docThis.Items
If itm.Name = "PublicEncryptionKeys" Then
Call itm.Remove
End If
Call docThis.Save(False,False)
End Forall
If Not vPublicEncNames(0) = "" Then
Dim itmPubEnc As New NotesItem(docThis, "PublicEncryptionKeys", vPublicEncNames, NAMES)
End If
End If
............
Was macht der Code:Ich lese im bestehenden Doc erstmal den Iteminhalt "PublicEncryptionKeys" in eine Variable (zum "merken").
Dann rendere ich das Mail in mein Richtextfeld.
Dann werfe ich alle Items "PublicEncryptionKeys" raus, falls das Mail verschlüsselt ist.
Zum Schluss erzeuge ich ein neues Item "PublicEncryptionKeys" und fülle es wieder mit dem zuvor gemerkten Iteminhalt.
ProblemMeine Forall - Schleife löscht wohl nicht alle Items "PublicEncryptionKeys".
Wenn ich nämlich das docThis vorher schon verschlüsselt war, gibt es nach dieser Aktion 2 Felder "PublicEncryptionKeys" mit gleichem Inhalt (Inhalt ist jeweils = vPublicEncNames).
FrageKann es sein, dass
Forall itm In docThis.Items
If itm.Name = "PublicEncryptionKeys" Then
Call itm.Remove
End If
End Forall
nicht zuverlässig arbeitet, also damit nicht alle Items mit dem Namen "PublicEncryptionKeys" gelöscht werden? Ich habe schon diverse call docThis.save eingebaut, um sicherzugehen, dass es daran nicht liegt.
2 Items "PublicEncryptionKeys" möchte ich eigentlich nicht als Ergebnis haben, da evtl. damit andere Nachteile entstehen könnten.
Grüße,
Michael
[EDIT]
Mir ist noch was eingefallen:
Wenn ich anstatt
Dim itmPubEnc As New NotesItem(docThis, "PublicEncryptionKeys", vPublicEncNames, NAMES)
einfach ein
docThis.PublicEncryptionKeys = vPublicEncNames
mache, dann klappt es, es ist also dann nur 1 Item vorhanden. Habe dabei aber ein mulmiges Gefühl, da ja eigentlich PublicEncryptionKeys gar nicht mehr da sein sollte nach dem Forall und speichern...