Невозможно увидеть отправленную почту с помощью Encyrpted через программу Java через Domino Sever

Я отправляю электронную почту через Domino Server, написав программу отправки сообщений Java. Ранее я использовал dll notes, но теперь я перешел на iiop. С тех пор я не могу видеть содержимое отправленной Зашифрованной почты. Получатели могут читать почту очень хорошо, это только я. Но я должен видеть мою отправленную зашифрованную почту.

Когда я отправляю электронную почту через клиент Lotus Notes, это работает. Я забыл установить что-нибудь в коде или что?

Код используется ниже:

 public boolean sendMail(boolean schedule, String subject, String body, List<String> recipients, boolean doEncryt, boolean html, List<Binary> binaries, List<String> cc, List<String> bcc, List<String> replyTo)
    {

        String errorTxt = "";

        boolean diiop = true;
        try 
        { 
            Session session = null;
            // if (diiop)
            try {
                session = NotesFactory.createSession(NOTESMAILSERVER,"SOMEID",NOTESIDPW);
                diiop = true;
            }
            // else
            catch (Exception exc){
                NotesThread.sinitThread();
                session = NotesFactory.createSession();
                Registration lRegistration = session.createRegistration();
                lRegistration.switchToID(ResourceHelper.findResource(NOTESIDPATH).getFile().getAbsolutePath(), NOTESIDPW);
                diiop = false;
            }


            DbDirectory dir = session.getDbDirectory(NOTESMAILSERVER);
            Database    lDb = dir.openMailDatabase();

            session.setConvertMime(true);
            session.setConvertMIME(true);
            Document lDoc = lDb.createDocument();

            lDoc.replaceItemValue("Form"    ,"Memo");

            //set receip email addresses
            fillAdressItem(lDoc, recipients, "SendTo");
            fillAdressItem(lDoc, cc, "CopyTo");
            fillAdressItem(lDoc, bcc, "BlindCopyTo");

            //set subject
            lDoc.replaceItemValue("Subject" , subject);

            //set sender
            lDoc.replaceItemValue("From", this.FROM);
            lDoc.replaceItemValue("Principal", this.FROM);

            //prepare body text
            prepareRichTextBody(body, html, session, lDoc);

            //handle attachments
            RichTextItem lAttachmentItem = lDoc.createRichTextItem("attachments");

            if(binaries != null)
            {
                for(Binary binary : binaries)
                {

                    File tempFile = new File(getTempFolder(),binary.getName());
                    IOUtils.copyLarge(binary.getDataInputStream(), new FileOutputStream(tempFile));

                    lAttachmentItem.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", tempFile.getPath(), tempFile.getName());

                    tempFile.delete();
                }
            }

            //save if aSaveOnSend is true
            lDoc.setSaveMessageOnSend(true);

            //encrypt document if requested            
            if(doEncryt)
            {
                lDoc.setEncryptOnSend(true);
                lDoc.encrypt();
            }

            //send mail
            lDoc.send();

            return(true);
        } 
        catch(Throwable lE) 
        {

        }
        finally
        {
            if (!diiop) NotesThread.stermThread();
        }

    }

Пожалуйста, дайте мне знать, что мне не хватает.

Спасибо

1 ответ

Решение

Вы вызываете как lDoc.setEncryptOnSend(true), так и lDoc.encrypt(). Метод encrypt () обычно используется с setEncryptionKeys () для шифрования секретным ключом. Электронная почта использует шифрование с открытым ключом.

Справка по состояниям метода encrypt ()

Поскольку шифрование почты работает по-другому, не используйте этот метод, если вы хотите отправить зашифрованный документ по почте. Вместо этого установите для свойства EncryptOnSend значение True и используйте метод Send.

Попробуйте избавиться от вызова lDoc.encrypt(). Я предполагаю, что, вызывая его, вы изменяете что-то во внутреннем состоянии документа (возможно, создаете пустой элемент SecretEncryptionKeys), что приводит к путанице при сохранении вашей копии отправленного сообщения.

Другие вопросы по тегам