Все содержимое HTML почты недоступно, и после извлечения части HTML исходная почта изменяется на расширенный текст - PullRequest
0 голосов
/ 23 октября 2019

Весь контент HTML в почте Lotus Notes не может быть получен с помощью некоторых методов, которые я пробовал. Я получаю часть HTML, которая выглядит как форматированный текст и с большим количеством "= A0" в содержимом, но невесь контент с CSS и стилем. Кроме того, после того, как я извлекаю этот неполный контент HTML, исходная почта изменяется на форматированный текст, хотя я установил session.setConvertMIME (true) ;. Я щелкнул правой кнопкой мыши по почте, чтобы перейти к свойствам документа, и я увидел все содержимое HTML в одном из атрибутов тела письма, оно обрезано, но если я смогу получить его с помощью кода, думаю, моя проблема будетчастично решен. введите описание изображения здесь Я пробовал вариант решения, предложенный в этом вопросе: Невозможно извлечь HTML-контент из почты в Lotus Notes, getMIMEEntity () возвращает ноль, даже после setConvertMIME (false)) . Используя это, я смог получить частичный HTML, тогда как до этого я даже не мог получить доступ к HTML в почте. Когда та же почта получена в Outlook, я могу получить доступ ко всему содержимому HTML там через контекстное меню правой кнопкой мыши и через код (свойство HTMLBody почты).

РАЗДЕЛ КОДА:

   public static String getHTMLContentFromMailDocument(Document mailDoc){
          Document selectedDoc = mailDoc;
          String htmlBody ="";
            try{
                Database database = selectedDoc.getParentDatabase();
                Session session = database.getParent();

                if (session.isConvertMime()) {
                    // Do not convert MIME to rich text.
                    session.setConvertMIME(false);
                }
                Item item = selectedDoc.getFirstItem("Body");           
                    MIMEEntity mimeEntity = null;                                           
                    if (item != null) {
                        if (item.getType() == Item.RICHTEXT ) {
                    // Convert Notes rich text to MIME                      
                            Stream stream = ShelfSession.getInstance().getSession().createStream();                         
                            Document _tempDocument = database.createDocument();
                            _tempDocument.copyItem(item, "Body");   
                            _tempDocument.convertToMIME(lotus.domino.Document.CVT_RT_TO_PLAINTEXT_AND_HTML, 0);
                            mimeEntity = _tempDocument.getMIMEEntity("Body");
                            mimeEntity.setContentFromText(stream,  "text/html", 1727);
                        } 
                        else if(item.getType()== Item.MIME_PART ){
                            mimeEntity = item.getMIMEEntity();
                        }
                        MIMEEntity currentEntity = null;
                        currentEntity = mimeEntity.getNextEntity();                 
                        while(currentEntity !=null){                        
                            if(currentEntity.getContentSubType().compareTo("html")==0){                         
                                 htmlBody = currentEntity.getContentAsText();                           
                                break;
                            }
                            currentEntity = currentEntity.getNextEntity();
                        }

                        session.setConvertMIME(true);
                        return htmlBody;
                    }

                return "";
            }
            catch(Exception e){
                log.error(e);
                return "";
            }
      }

Я добавил ожидаемый вывод и фактические выходные файлы в этом месте: https://sap -my.sharepoint.com /: f: / p / a_ramesh / EhhfOyzQ4RdEovR94S-IXGIBP7AH2ITj9sddvtXR27LUZA? E = Xq4Uvum Current2Файлы CurrentProblem.html и CurrentProblem.txt. Ожидаемый результат: файлы Outlook.html и OutlookHTMLExpected.txt.

...