Wir verwenden DIIOP, um E-Mails in einem Java-Programm zu senden, aber wenn der Empfänger die E-Mail öffnet, obwohl "Diese Nachricht digital signiert" ist, wird eine Warnmeldung angezeigt Statusleiste "Dieses Dokument wurde seit dem Zeitpunkt geändert, an dem es signiert wurde! Vorsätzliche Manipulationen sind möglicherweise aufgetreten." Überprüfen Sie die Eigenschaften der empfangenen Mail "$ Signature" ist da, aber "$ SignatureStatus" ist "2" angibt, dass das Dokument nach dem Signieren geändert wurde.Lotus Notes E-Mail-Signatur mit Java-API über DIIOP
Der Code-Schnipsel:
lotus.domino.Document memo = dominoDb.createDocument();
memo.replaceItemValue("Form", "Memo");
...
memo.setSaveMessageOnSend(true);
memo.setSignOnSend(true);
memo.sign();
memo.send(false);
Wenn entweder memo.sign() oder memo.setSignOnSend (true) weggelassen wird, "das empfangene Dokument nicht ohne $ Unterschrift und $ SignatureStatus Wert unterzeichnet werden würde 0 ".
Übrigens funktioniert das memo.setEncryptOnSend (boolean) wie erwartet.
Ich könnte signierte Mail von Java über DIIOP mit meinem Protokoll Standalone-Programm senden. Es ist nur nach der Integration mit dem vorhandenen Code, dann erscheint das Problem. Es wurde festgestellt, dass es durch die Konvertierung von MIME in Richtext auf der Serverseite verursacht wurde. Da das Signieren von MIME-Mail eine Internet-Zertifizierung erfordert, mussten wir session.convertMIME (true) setzen und ein MIME-Dokument erstellen, indem Sie die Header "An", "Cc" und "Bcc" des MIMEEEntity setzen. Speichern Sie es und holen Sie es wieder, so dass es RIchtext wurde, Dann haben wir das Signierproblem. Wenn wir jedoch die Elemente "SentTo", "CopyTo", "BlindCopyTo" einstellen, können wir das Dokument unterschreiben –
Wie greift Ihr Standalone-Code auf den privaten Schlüssel für das Internet-Zertifikat zu? Wenn Sie DIIOP verwenden, funktioniert Ihr Code ohne die lokalen Notes-DLLs, sodass er die Benutzer-ID-Datei nicht lesen kann. Der private Schlüssel für das Internet-Zertifikat befindet sich in der Benutzer-ID-Datei. Wird in Ihrem Code nach dem Passwort der ID-Datei gefragt? Ich kann mir nur vorstellen, dass dies über DIIOP funktioniert, wenn Sie die ID in der Mail-Datei des Benutzers synchronisiert haben. DWA (iNotes) kann mit diesem Mechanismus Nachrichten von einem Browser signieren, aber ich dachte nicht, dass das DIIOP das tun könnte. –
Es ist zwar vom Server signiert, nicht vom Benutzer. Du hast Recht. –