2015-04-14 5 views
1

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

Когда я отправляю электронное письмо через клиент 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(); 
     } 

    } 

Пожалуйста, дайте мне знать, что я пропускаю.

Благодаря

ответ

0

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

помощи для шифрования() состояния метода

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

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

+0

Спасибо @Richard Я проверю это завтра и дам вам знать, работает ли это. Надеюсь, это так. Спасибо за подсказку :) – nanosoft

+0

Прекрасно работает. Спасибо – nanosoft

+0

Выполнение сделанных даже делегатов электронной почты для чтения зашифрованной почты, которой не должно быть? Делегаты электронной почты должны видеть только данные отправителя, субъект, но НЕ ТЕЛО. Так что же еще нужно сделать? – nanosoft