우리는 Java 프로그램에서 메일을 보내기 위해 DIIOP를 사용하고 있지만 수신자가 메일을 열면 "이 메시지는 디지털 서명 됨"메시지가 표시됩니다. 상태 표시 줄 "이 문서는 서명 된 이후로 변경되었습니다! 의도적 인 조작이 일어 났을 수 있습니다." 수신 된 메일 "$ Signature"의 등록 정보를 확인했지만 "$ SignatureStatus"는 서명 후 문서가 변경되었음을 나타내는 "2"입니다.Lotus Notes 메일 DIIOP를 통해 Java API를 사용하여 서명
코드 조각 : 하나 memo.sign가() 또는 memo.setSignOnSend (true)를 생략하면
lotus.domino.Document memo = dominoDb.createDocument();
memo.replaceItemValue("Form", "Memo");
...
memo.setSaveMessageOnSend(true);
memo.setSignOnSend(true);
memo.sign();
memo.send(false);
는, 수신 된 문서는 어떤 $ 서명 서명되지 않을 것이며, 가치 $ SignatureStatus " 0 ".
그런데 memo.setEncryptOnSend (boolean)는 예상대로 작동합니다.
내 프로토콜 독립 실행 형 프로그램을 사용하여 Java에서 DIIOP를 통해 서명 된 메일을 보낼 수 있습니다. 기존 코드와 통합 한 후에야 문제가 나타납니다. MIME이 서버 측 Richtext로 변환 되었기 때문에 발견되었습니다. mime 메일에 서명하려면 인터넷 인증서가 필요하므로 우리는 session.convertMIME (true)를 설정하고 MIME 문서를 만들고 MIMEEntity의 "To", "Cc"및 "Bcc"헤더를 설정해야했습니다. 그것을 저장하고 다시 검색하여 RIchtext가되도록 만든 다음 서명 문제가 있습니다. 그러나 "SentTo", "CopyTo", "BlindCopyTo"항목을 설정하면 문서에 서명 할 수 있습니다 –
독립 실행 형 코드가 인터넷 인증서의 개인 키에 어떻게 액세스합니까? DIIOP를 사용하는 경우 코드가 로컬 Notes DLL없이 작동하므로 사용자 ID 파일을 읽을 수 없습니다. 인터넷 인증서의 개인 키는 사용자 ID 파일에 있습니다. 코드에서 ID 파일의 암호를 묻는 메시지가 나타 납니까? ID가 사용자의 메일 파일에 동기화되어있는 경우 DIIOP에서 작동하는 것으로 상상할 수있는 유일한 방법입니다. DWA (iNotes)는이 메커니즘을 사용하여 브라우저에서 메시지에 서명 할 수 있지만 DIIOP이 그렇게 할 수 있다고 생각하지 않았습니다. –
그것은 서버가 아닌 사용자가 서명했습니다. 당신이 올바른지. –