List of usage examples for org.apache.poi.hsmf MAPIMessage getDisplayCC
public String getDisplayCC() throws ChunkNotFoundException
From source file:com.jaeksoft.searchlib.parser.MapiMsgParser.java
License:Open Source License
@Override protected void parseContent(StreamLimiter streamLimiter, LanguageEnum lang) throws IOException, SearchLibException { MAPIMessage msg = new MAPIMessage(streamLimiter.getNewInputStream()); msg.setReturnNullOnMissingChunk(true); ParserResultItem result = getNewParserResultItem(); try {/*from w w w.j ava 2s . c o m*/ result.addField(ParserFieldEnum.email_display_from, msg.getDisplayFrom()); result.addField(ParserFieldEnum.email_display_to, msg.getDisplayTo()); result.addField(ParserFieldEnum.email_display_cc, msg.getDisplayCC()); result.addField(ParserFieldEnum.email_display_bcc, msg.getDisplayBCC()); result.addField(ParserFieldEnum.subject, msg.getSubject()); result.addField(ParserFieldEnum.htmlSource, msg.getHtmlBody()); result.addField(ParserFieldEnum.content, msg.getTextBody()); result.addField(ParserFieldEnum.creation_date, msg.getMessageDate()); result.addField(ParserFieldEnum.email_conversation_topic, msg.getConversationTopic()); RecipientChunks[] recipientChuncksList = msg.getRecipientDetailsChunks(); if (recipientChuncksList != null) { for (RecipientChunks recipientChunks : recipientChuncksList) { result.addField(ParserFieldEnum.email_recipient_name, recipientChunks.getRecipientName()); result.addField(ParserFieldEnum.email_recipient_address, recipientChunks.getRecipientEmailAddress()); } } if (StringUtils.isEmpty(msg.getHtmlBody())) result.langDetection(10000, ParserFieldEnum.content); else result.langDetection(10000, ParserFieldEnum.htmlSource); } catch (ChunkNotFoundException e) { Logging.warn(e); } }
From source file:com.openkm.util.MailUtils.java
License:Open Source License
/** * Convert Outlook Message to Mail/*from w w w. j av a 2 s . c o m*/ */ public static Mail messageToMail(MAPIMessage msg) throws MessagingException, IOException { com.openkm.bean.Mail mail = new com.openkm.bean.Mail(); Calendar receivedDate = Calendar.getInstance(); Calendar sentDate = Calendar.getInstance(); try { // Can be void if (msg.getMessageDate() != null) { receivedDate.setTime(msg.getMessageDate().getTime()); } // Can be void if (msg.getMessageDate() != null) { sentDate.setTime(msg.getMessageDate().getTime()); } if (msg.getRtfBody() != null) { try { // JEditorPaneRTF2HTMLConverter converter = new JEditorPaneRTF2HTMLConverter(); // mail.setContent(converter.rtf2html(msg.getBodyRTF())); ByteArrayInputStream bais = new ByteArrayInputStream(msg.getRtfBody().getBytes()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); DocConverter.getInstance().rtf2html(bais, baos); mail.setMimeType(MimeTypeConfig.MIME_HTML); mail.setContent(baos.toString().replace("<BR>", "")); IOUtils.closeQuietly(bais); IOUtils.closeQuietly(baos); } catch (Exception e) { throw new MessagingException(e.getMessage(), e); } } else if (msg.getHtmlBody() != null) { mail.setMimeType(MimeTypeConfig.MIME_HTML); mail.setContent(msg.getHtmlBody()); } else if (msg.getTextBody() != null) { mail.setMimeType(MimeTypeConfig.MIME_TEXT); mail.setContent(msg.getTextBody()); } else { mail.setMimeType(MimeTypeConfig.MIME_UNDEFINED); } if (msg.getDisplayTo() != null) { mail.setTo(recipientToString(msg.getDisplayTo())); } else { mail.setTo(new String[] {}); } StringBuilder sb = new StringBuilder(); for (String header : msg.getHeaders()) { sb.append(header).append("\n"); } // Need to replace 0x00 because PostgreSQL does not accept string containing 0x00 // Need to remove Unicode surrogate because of MySQL => SQL Error: 1366, SQLState: HY000 String subject = FormatUtil.trimUnicodeSurrogates(FormatUtil.fixUTF8(msg.getSubject())); mail.setSize(mail.getContent().length()); mail.setSubject((subject == null || subject.isEmpty()) ? NO_SUBJECT : subject); mail.setFrom(msg.getDisplayFrom()); mail.setCc(recipientToString(msg.getDisplayCC())); mail.setBcc(recipientToString(msg.getDisplayBCC())); mail.setReceivedDate(receivedDate); mail.setSentDate(sentDate); } catch (ChunkNotFoundException e) { throw new MessagingException(e.getMessage(), e); } return mail; }
From source file:com.opensearchserver.extractor.parser.MapiMsg.java
License:Apache License
@Override protected void parseContent(InputStream inputStream, String extension, String mimeType) throws Exception { MAPIMessage msg = new MAPIMessage(inputStream); msg.setReturnNullOnMissingChunk(true); ParserDocument document = getNewParserDocument(); document.add(FROM, msg.getDisplayFrom()); document.add(RECIPIENT_TO, msg.getDisplayTo()); document.add(RECIPIENT_CC, msg.getDisplayCC()); document.add(RECIPIENT_BCC, msg.getDisplayBCC()); document.add(SUBJECT, msg.getSubject()); document.add(HTML_CONTENT, msg.getHtmlBody()); document.add(PLAIN_CONTENT, msg.getTextBody()); document.add(MESSAGE_DATE, msg.getMessageDate()); document.add(CONVERSATION_TOPIC, msg.getConversationTopic()); if (StringUtils.isEmpty(msg.getHtmlBody())) document.add(LANG_DETECTION, languageDetection(document, PLAIN_CONTENT, 10000)); else//from w w w . j a v a2 s . c o m document.add(LANG_DETECTION, languageDetection(document, HTML_CONTENT, 10000)); // TODO manage attachments }
From source file:com.qwazr.library.poi.MapiMsgParser.java
License:Apache License
@Override public void parseContent(final MultivaluedMap<String, String> parameters, final InputStream inputStream, final String extension, final String mimeType, final ParserResultBuilder resultBuilder) throws Exception { final MAPIMessage msg = new MAPIMessage(inputStream); msg.setReturnNullOnMissingChunk(true); final ParserFieldsBuilder metas = resultBuilder.metas(); metas.set(MIME_TYPE, DEFAULT_MIMETYPES[0]); final ParserFieldsBuilder document = resultBuilder.newDocument(); document.add(FROM, msg.getDisplayFrom()); document.add(RECIPIENT_TO, msg.getDisplayTo()); document.add(RECIPIENT_CC, msg.getDisplayCC()); document.add(RECIPIENT_BCC, msg.getDisplayBCC()); document.add(SUBJECT, msg.getSubject()); document.add(HTML_CONTENT, msg.getHtmlBody()); document.add(PLAIN_CONTENT, msg.getTextBody()); document.add(MESSAGE_DATE, msg.getMessageDate()); document.add(CONVERSATION_TOPIC, msg.getConversationTopic()); if (StringUtils.isEmpty(msg.getHtmlBody())) document.add(LANG_DETECTION, languageDetection(document, PLAIN_CONTENT, 10000)); else/*from www . j a v a 2s.co m*/ document.add(LANG_DETECTION, languageDetection(document, HTML_CONTENT, 10000)); // TODO manage attachments }
From source file:org.alfresco.repo.content.transform.MSGParser.java
License:Apache License
/** * Process header.//from w w w . j a va 2s . com * * @param msg * the msg * @param metadata * the metadata * @param xhtml * the xhtml * @throws Exception * the exception */ private void processHeader(MAPIMessage msg, Metadata metadata, XHTMLContentHandler xhtml) throws Exception { StringChunk subjectChunk = msg.getMainChunks().subjectChunk; if (msg.has7BitEncodingStrings()) { CharsetDetector detector = new CharsetDetector(); detector.setText(subjectChunk.getRawValue()); CharsetMatch detect = detector.detect(); if (detect.getConfidence() >= 20) { subjectChunk.set7BitEncoding(detect.getName()); } } String subject = subjectChunk.getValue(); String from = msg.getDisplayFrom(); metadata.set(DublinCore.CREATOR, from); metadata.set(Metadata.MESSAGE_FROM, from); metadata.set(Metadata.MESSAGE_TO, msg.getDisplayTo()); metadata.set(Metadata.MESSAGE_CC, msg.getDisplayCC()); metadata.set(Metadata.MESSAGE_BCC, msg.getDisplayBCC()); metadata.set(DublinCore.TITLE, subject); metadata.set(DublinCore.SUBJECT, msg.getConversationTopic()); try { for (String recipientAddress : msg.getRecipientEmailAddressList()) { if (recipientAddress != null) metadata.add(Metadata.MESSAGE_RECIPIENT_ADDRESS, recipientAddress); } } catch (ChunkNotFoundException he) { } // Will be fixed in POI 3.7 Final // Date - try two ways to find it // First try via the proper chunk if (msg.getMessageDate() != null) { metadata.set(DublinCore.DATE, msg.getMessageDate().getTime()); metadata.set(Office.CREATION_DATE, msg.getMessageDate().getTime()); metadata.set(Office.SAVE_DATE, msg.getMessageDate().getTime()); } else { try { // Failing that try via the raw headers String[] headers = msg.getHeaders(); if (headers != null && headers.length > 0) { for (String header : headers) { if (header.toLowerCase().startsWith("date:")) { String date = header.substring(header.indexOf(':') + 1).trim(); // See if we can parse it as a normal mail date try { Date d = MboxParser.parseDate(date); metadata.set(DublinCore.DATE, d); metadata.set(Office.CREATION_DATE, d); metadata.set(Office.SAVE_DATE, d); } catch (ParseException e) { // Store it as-is, and hope for the best... metadata.set(DublinCore.DATE, date); metadata.set(Office.CREATION_DATE, date); metadata.set(Office.SAVE_DATE, date); } break; } } } } catch (ChunkNotFoundException he) { // We can't find the date, sorry... } } xhtml.element("h1", subject); // Output the from and to details in text, as you // often want them in text form for searching xhtml.startElement("dl"); if (from != null) { header(xhtml, "From", from); } header(xhtml, "To", msg.getDisplayTo()); header(xhtml, "Cc", msg.getDisplayCC()); header(xhtml, "Bcc", msg.getDisplayBCC()); try { header(xhtml, "Recipients", msg.getRecipientEmailAddress()); } catch (ChunkNotFoundException e) { } List<String> attachmentList = new ArrayList<String>(); // // prepare attachments prepareExtractMultipart(xhtml, message, attachmentList); if (attachmentList.size() > 0) { header(xhtml, "Attachments", attachmentList.toString()); } xhtml.endElement("dl"); }