2015-04-14 3 views
1

J'envoie des e-mails via Domino Server en écrivant le programme expéditeur de courrier Java. Auparavant j'utilisais des notes dll mais maintenant je suis passé à iiop. Depuis lors, je ne suis pas en mesure de voir le contenu de mon envoyé courrier crypté. Les destinataires peuvent très bien lire le courrier, c'est juste moi. Mais je devrais pouvoir voir mon courrier crypté envoyé. Lorsque j'envoie des e-mails via le client Lotus Notes, cela fonctionne. J'ai oublié de mettre quelque chose dans le code ou quoi?Impossible d'afficher Encyrpted Sent Mail via le programme Java via Domino Server

code

utilisé est ci-dessous:

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(); 
     } 

    } 

Veuillez me faire savoir ce que je suis absent.

Merci

Répondre

0

Vous appelez à la fois lDoc.setEncryptOnSend (true) et lDoc.encrypt(). La méthode encrypt() est normalement utilisée avec setEncryptionKeys() pour effectuer le cryptage par clé secrète. Le courrier électronique utilise le cryptage à clé publique.

L'aide pour le chiffrement() états méthode

Depuis fonctionne le chiffrement des messages différemment, ne pas utiliser cette méthode si vous souhaitez envoyer un document crypté. Au lieu de cela, définissez la propriété EncryptOnSend sur True et utilisez la méthode Send.

Essayez de vous débarrasser de l'appel de lDoc.encrypt(). Je suppose qu'en l'appelant, vous modifiez quelque chose dans l'état interne du document (peut-être en créant un élément SecretEncryptionKeys vide) qui gâche tout en sauvegardant votre copie du message envoyé.

+0

Merci @Richard Je vais vérifier cela demain et vous faire savoir si cela fonctionne. J'espère que c'est le cas. Merci pour l'indice :) – nanosoft

+0

Fonctionne parfaitement. Merci – nanosoft

+0

Cela fait même envoyer des délégués par e-mail pour lire le courrier crypté, ce qui ne devrait pas être le cas? Délégués par e-mail ne devrait voir que les détails de l'expéditeur, mais pas le corps. Alors, y a-t-il autre chose à faire? – nanosoft